private static String throwsString(ExecutableElement method) {
    if (method.getThrownTypes().isEmpty()) {
      return "";
    }
    return "throws "
        + method.getThrownTypes().stream().map(TypeEncoder::encode).collect(joining(", "));
  }
Returns an appropriate string to be used in code for the access specification of the given
method. This will be {@code public} or {@code protected} followed by a space, or the empty
string for default access.
value/src/main/java/com/google/auto/value/processor/SimpleMethod.java