private static int appendTypeArgumentSignature(char[] string,int start,boolean fullyQualifyTypeNames,StringBuffer buffer){
  if (start >= string.length) {
    throw new IllegalArgumentException();
  }
  char c=string[start];
switch (c) {
case C_STAR:
    buffer.append('?');
  return start;
case C_EXTENDS:
buffer.append("? extends ");
return appendTypeSignature(string,start + 1,fullyQualifyTypeNames,buffer);
case C_SUPER:
buffer.append("? super ");
return appendTypeSignature(string,start + 1,fullyQualifyTypeNames,buffer);
default :
return appendTypeSignature(string,start,fullyQualifyTypeNames,buffer);
}
}

private static int appendTypeArgumentSignature ( char [ ] string , int start , boolean fullyQualifyTypeNames , StringBuffer buffer ) { if ( start >= string . length ) { throw new IllegalArgumentException ( ) ; } char c = string [ start ] ; switch ( c ) { case C_STAR : buffer . append ( '?' ) ; return start ; case C_EXTENDS : buffer . append ( "? extends " ) ; return appendTypeSignature ( string , start + 1 , fullyQualifyTypeNames , buffer ) ; case C_SUPER : buffer . append ( "? super " ) ; return appendTypeSignature ( string , start + 1 , fullyQualifyTypeNames , buffer ) ; default : return appendTypeSignature ( string , start , fullyQualifyTypeNames , buffer ) ; } }
scans the given string for a type argument signature starting at the given index and appends it to the given buffer , and returns the index of the last character .
