private static int appendTypeArgumentSignatures(char[] string,int start,boolean fullyQualifyTypeNames,StringBuffer buffer){
  if (start >= string.length - 1) {
    throw new IllegalArgumentException();
  }
  char c=string[start];
  if (c != C_GENERIC_START) {
    throw new IllegalArgumentException();
  }
  buffer.append('<');
  int p=start + 1;
  int count=0;
  while (true) {
    if (p >= string.length) {
      throw new IllegalArgumentException();
    }
    c=string[p];
    if (c == C_GENERIC_END) {
      buffer.append('>');
      return p;
    }
    if (count != 0) {
      buffer.append(',');
    }
    int e=appendTypeArgumentSignature(string,p,fullyQualifyTypeNames,buffer);
    count++;
    p=e + 1;
  }
}

private static int appendTypeArgumentSignatures ( char [ ] string , int start , boolean fullyQualifyTypeNames , StringBuffer buffer ) { if ( start >= string . length - 1 ) { throw new IllegalArgumentException ( ) ; } char c = string [ start ] ; if ( c != C_GENERIC_START ) { throw new IllegalArgumentException ( ) ; } buffer . append ( '<' ) ; int p = start + 1 ; int count = 0 ; while ( true ) { if ( p >= string . length ) { throw new IllegalArgumentException ( ) ; } c = string [ p ] ; if ( c == C_GENERIC_END ) { buffer . append ( '>' ) ; return p ; } if ( count != 0 ) { buffer . append ( ',' ) ; } int e = appendTypeArgumentSignature ( string , p , fullyQualifyTypeNames , buffer ) ; count ++ ; p = e + 1 ; } }
scans the given string for a list of type arguments signature starting at the given index and appends it to the given buffer , and returns the index of the last character .
