public static TypeSpec create()

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();
  }