code: private static String getMethodSignature(ExecutableElement executableElement) throws IOException
      {
          Result sb = new Result();
          formalTypeParameters(sb, executableElement.getTypeParameters());
          sb.append('(');
          for (VariableElement param : executableElement.getParameters())
          {
              typeSignature(sb, param.asType());
          }
          sb.append(')');
          // ReturnType:
          //    TypeSignature
          //    VoidDescriptor
          TypeMirror returnType = executableElement.getReturnType();
          if (TypeKind.VOID.equals(returnType.getKind()))
          {
              sb.append('V');
          }
          else
          {
              typeSignature(sb, returnType);
          }
  
          for (TypeMirror param : executableElement.getThrownTypes())
          {
              getThrowsSignature(sb, param);
          }
          return sb.toString();
      }
docs: MethodTypeSignature:
  FormalTypeParametersopt (TypeSignature*) ReturnType ThrowsSignature*
  @param method
  @return