TypeMirror getContainedType(Types typeUtils) {
    List<? extends TypeMirror> typeArguments = optionalType.getTypeArguments();
    switch (typeArguments.size()) {
      case 1:
        return typeArguments.get(0);
      case 0:
        return getContainedPrimitiveType(typeUtils);
      default:
        throw new AssertionError("Wrong number of type arguments: " + optionalType);
    }
  }
Returns a string representing the method call to obtain the empty version of this Optional.
This will be something like {@code "Optional.empty()"} or possibly {@code
"java.util.Optional.empty()"}. It does not have a final semicolon.

<p>This method is public so that it can be referenced as {@code p.optional.empty} from
templates.
value/src/main/java/com/google/auto/value/processor/Optionalish.java