public static char[] createMethodSignature(char[][] parameterTypes,char[] returnType){
  int parameterTypesLength=parameterTypes.length;
  int parameterLength=0;
  for (int i=0; i < parameterTypesLength; i++) {
    parameterLength+=parameterTypes[i].length;
  }
  int returnTypeLength=returnType.length;
  char[] result=new char[1 + parameterLength + 1+ returnTypeLength];
  result[0]=C_PARAM_START;
  int index=1;
  for (int i=0; i < parameterTypesLength; i++) {
    char[] parameterType=parameterTypes[i];
    int length=parameterType.length;
    System.arraycopy(parameterType,0,result,index,length);
    index+=length;
  }
  result[index]=C_PARAM_END;
  System.arraycopy(returnType,0,result,index + 1,returnTypeLength);
  return result;
}

public static char [ ] createMethodSignature ( char [ ] [ ] parameterTypes , char [ ] returnType ) { int parameterTypesLength = parameterTypes . length ; int parameterLength = 0 ; for ( int i = 0 ; i < parameterTypesLength ; i ++ ) { parameterLength += parameterTypes [ i ] . length ; } int returnTypeLength = returnType . length ; char [ ] result = new char [ 1 + parameterLength + 1 + returnTypeLength ] ; result [ 0 ] = C_PARAM_START ; int index = 1 ; for ( int i = 0 ; i < parameterTypesLength ; i ++ ) { char [ ] parameterType = parameterTypes [ i ] ; int length = parameterType . length ; System . arraycopy ( parameterType , 0 , result , index , length ) ; index += length ; } result [ index ] = C_PARAM_END ; System . arraycopy ( returnType , 0 , result , index + 1 , returnTypeLength ) ; return result ; }
creates a method signature from the given parameter and return type signatures . the encoded method signature is dot - based .
