public String getType() {
      return type;
    }
Makes a new {@code PropertyGetter} instance.

@param method the source method which this getter is implementing.
@param type the type that the getter returns. This is written to take imports into account,
    so it might be {@code List<String>} for example. It is either identical to the type of
    the corresponding getter in the {@code @AutoValue} class, or it is an optional wrapper,
    like {@code Optional<List<String>>}.
@param optional a representation of the {@code Optional} type that the getter returns, if
    this is an optional getter, or null otherwise. An optional getter is one that returns
    {@code Optional<T>} rather than {@code T}, as explained above.
value/src/main/java/com/google/auto/value/processor/BuilderSpec.java