in dataenum-processor/src/main/java/com/spotify/dataenum/processor/generator/value/ValueTypeFactory.java [57:87]
public static TypeSpec create(
OutputValue value,
OutputSpec spec,
MatchMethods matchMethods,
MapMethods mapMethods,
Optional<Modifier> constructorAccessModifier)
throws ParserException {
TypeSpec.Builder typeBuilder =
TypeSpec.classBuilder(value.outputClass())
.addTypeVariables(value.typeVariables())
.superclass(getSuperclassForValue(value, spec))
.addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL);
typeBuilder.addMethod(createConstructor(value, constructorAccessModifier));
typeBuilder.addFields(createFields(value));
typeBuilder.addMethods(createGetters(value));
typeBuilder.addMethod(createEquals(value));
typeBuilder.addMethod(createHashCode(value));
typeBuilder.addMethod(createToString(value));
typeBuilder.addMethod(matchMethods.createFoldVoidMethod(value));
typeBuilder.addMethod(mapMethods.createFoldMethod(value));
if (spec.hasTypeVariables()) {
typeBuilder.addMethod(createAsSpecMethod(value, spec));
}
return typeBuilder.build();
}