private HollowAPIGenerator buildHollowAPIGenerator(ApiGeneratorExtension extension, HollowWriteStateEngine writeStateEngine, String apiTargetPath) { HollowAPIGenerator.Builder builder = new HollowAPIGenerator.Builder() .withAPIClassname(extension.apiClassName) .withPackageName(extension.apiPackageName) .withDataModel(writeStateEngine) .withDestination(apiTargetPath) .withParameterizeAllClassNames(extension.parameterizeAllClassNames) .withAggressiveSubstitutions(extension.useAggressiveSubstitutions) .withBooleanFieldErgonomics(extension.useBooleanFieldErgonomics) .reservePrimaryKeyIndexForTypeWithPrimaryKey(extension.reservePrimaryKeyIndexForTypeWithPrimaryKey) .withHollowPrimitiveTypes(extension.useHollowPrimitiveTypes) .withVerboseToString(extension.useVerboseToString); if(extension.getterPrefix != null && !extension.getterPrefix.isEmpty()) { builder.withGetterPrefix(extension.getterPrefix); } if(extension.classPostfix != null && !extension.classPostfix.isEmpty()) { builder.withClassPostfix(extension.classPostfix); } if(extension.useErgonomicShortcuts) { builder.withErgonomicShortcuts(); } if(extension.usePackageGrouping) { builder.withPackageGrouping(); } if(extension.restrictApiToFieldType) { builder.withRestrictApiToFieldType(); } return builder.build(); }
@Test public void test() throws Exception { String apiClassName = "ScalarFieldCodeGenAPI"; String packageName = "codegen.scalar.types"; runGenerator(apiClassName, packageName, Movie.class, builder -> builder.withErgonomicShortcuts().withPackageGrouping() .withHollowPrimitiveTypes(true).withRestrictApiToFieldType()); }
@Test public void testGenerateWithPostfixAndAggressiveSubstitutions() throws Exception { runGenerator("MyClassTestAPI", "codegen.api", MyClass.class, builder -> builder.withClassPostfix("Generated").withPackageGrouping() .withHollowPrimitiveTypes(true).withAggressiveSubstitutions(true)); assertFileDoesNotExist("codegen/api/core/StringGenerated.java"); assertFileDoesNotExist("codegen/api/StringGenerated.java"); }
@Test public void testGenerateWithPostfixAndPrimitiveTypes() throws Exception { runGenerator("MyClassTestAPI", "codegen.api", MyClass.class, builder -> builder.withClassPostfix("Generated").withPackageGrouping() .withHollowPrimitiveTypes(true)); assertFileDoesNotExist("codegen/api/core/StringGenerated.java"); assertFileDoesNotExist("codegen/api/StringGenerated.java"); }
@Test public void test() throws Exception { String apiClassName = "PrimitiveTypeTestAPI"; String packageName = "codegen.primitive.types"; runGenerator(apiClassName, packageName, Movie.class, builder -> builder .withErgonomicShortcuts().withPackageGrouping().withHollowPrimitiveTypes(true)); }