public static char[] createTypeParameterSignature(char[] typeParameterName,char[][] boundSignatures){
  int length=boundSignatures.length;
  if (length == 0) {
    return CharOperation.append(typeParameterName,C_COLON);
  }
  int boundsSize=0;
  for (int i=0; i < length; i++) {
    boundsSize+=boundSignatures[i].length + 1;
  }
  int nameLength=typeParameterName.length;
  char[] result=new char[nameLength + boundsSize];
  System.arraycopy(typeParameterName,0,result,0,nameLength);
  int index=nameLength;
  for (int i=0; i < length; i++) {
    result[index++]=C_COLON;
    int boundLength=boundSignatures[i].length;
    System.arraycopy(boundSignatures[i],0,result,index,boundLength);
    index+=boundLength;
  }
  return result;
}

public static char [ ] createTypeParameterSignature ( char [ ] typeParameterName , char [ ] [ ] boundSignatures ) { int length = boundSignatures . length ; if ( length == 0 ) { return CharOperation . append ( typeParameterName , C_COLON ) ; } int boundsSize = 0 ; for ( int i = 0 ; i < length ; i ++ ) { boundsSize += boundSignatures [ i ] . length + 1 ; } int nameLength = typeParameterName . length ; char [ ] result = new char [ nameLength + boundsSize ] ; System . arraycopy ( typeParameterName , 0 , result , 0 , nameLength ) ; int index = nameLength ; for ( int i = 0 ; i < length ; i ++ ) { result [ index ++ ] = C_COLON ; int boundLength = boundSignatures [ i ] . length ; System . arraycopy ( boundSignatures [ i ] , 0 , result , index , boundLength ) ; index += boundLength ; } return result ; }
creates a new type parameter signature with the given name and bounds .
