code: public String getTypeDescriptor() {
          if (typeDescriptor == null) {
              StringBuilder buf = new StringBuilder(name.length() + parameters.length * 10);
              buf.append(returnType.getName());
              buf.append(' ');
              buf.append(name);
              buf.append('(');
              for (int i = 0; i < parameters.length; i++) {
                  if (i > 0) {
                      buf.append(", ");
                  }
                  Parameter param = parameters[i];
                  buf.append(formatTypeName(param.getType()));
              }
              buf.append(')');
              typeDescriptor = buf.toString();
          }
          return typeDescriptor;
      }
docs: The type descriptor for a method node is a string containing the name of the method, its return type,
  and its parameter types in a canonical form. For simplicity, I'm using the format of a Java declaration
  without parameter names.
  
  @return the type descriptor