static String generatedClassName(TypeElement type, String prefix) {
    String name = type.getSimpleName().toString();
    while (MoreElements.isType(type.getEnclosingElement())) {
      type = MoreElements.asType(type.getEnclosingElement());
      name = type.getSimpleName() + "_" + name;
    }
    String pkg = TypeSimplifier.packageNameOf(type);
    String dot = pkg.isEmpty() ? "" : ".";
    return pkg + dot + prefix + name;
  }
Returns the name of the generated {@code @AutoValue} (etc) class, for example {@code
AutoOneOf_TaskResult} or {@code $$AutoValue_SimpleMethod}.

@param type the name of the type bearing the {@code @AutoValue} (etc) annotation.
@param prefix the prefix to use in the generated class. This may start with one or more dollar
    signs, for an {@code @AutoValue} implementation where there are AutoValue extensions.
value/src/main/java/com/google/auto/value/processor/AutoValueishProcessor.java