private AppliedNameForms factoryImplementationBuilder() {
		boolean isOutsideNotNested = isOutsideBuilderNotNested();
		Naming methodBuilderNaming = isOutsideNotNested
				? names().namings.newBuilder
				: names().namings.builder;

		boolean haveConstructorOnBuilder = isOutsideNotNested
				|| isConstantNamingEquals(methodBuilderNaming, NEW_KEYWORD);

		NameForms typeNameForms = haveConstructorOnBuilder
				? typeBuilder()
				: typeImmutable();

		String applied = methodBuilderNaming.apply(names().raw);
		if (isNestedFactoryOrConstructor()) {
			applied = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, names().raw)
					+ CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, applied);
		}
		return typeNameForms.applied(applied);
	}
Walks to the enclosing type's simple names and applies naming convention.
This shortcut/fix shows deficiency of model (it's probably more complicated than needed).
@return enclosing immutable name
value-processor/src/org/immutables/value/processor/meta/Constitution.java