PackageAndClass getFactoryName() {
    String packageName = getPackage(targetType()).getQualifiedName().toString();
    if (className().isPresent()) {
      return PackageAndClass.of(packageName, className().get());
    }
    StringBuilder builder = new StringBuilder();
    for (String enclosingSimpleName : targetEnclosingSimpleNames()) {
      builder.append(enclosingSimpleName).append('_');
    }
    builder.append(targetType().getSimpleName()).append("Factory");
    return PackageAndClass.of(packageName, builder.toString());
  }
This is a value object that mirrors the static declaration of an {@link AutoFactory} annotation.

@author Gregory Kick
factory/src/main/java/com/google/auto/factory/processor/AutoFactoryDeclaration.java