code: protected String makeMethodString(ExecutableElement e) {
          StringBuilder result = new StringBuilder();
          for (Modifier modifier : e.getModifiers()) {
              result.append(modifier.toString());
              result.append(" ");
          }
          result.append(e.getReturnType().toString());
          result.append(" ");
          result.append(e.toString());
  
          List<? extends TypeMirror> thrownTypes = e.getThrownTypes();
          if (!thrownTypes.isEmpty()) {
              result.append(" throws ");
              for (Iterator<? extends TypeMirror> iterator = thrownTypes
                      .iterator(); iterator.hasNext();) {
                  TypeMirror typeMirror = iterator.next();
                  result.append(typeMirror.toString());
                  if (iterator.hasNext()) {
                      result.append(", ");
                  }
              }
          }
          return result.toString();
      }
docs: Creates a String representation of a method element with everything
  necessary to track all public aspects of it in an API.
  @param e Element to create String for.
  @return String representation of element.