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 = "PrimaryKeyIndexTestAPI"; String packageName = "codegen.primarykey"; runGenerator(apiClassName, packageName, Movie.class, builder -> builder.reservePrimaryKeyIndexForTypeWithPrimaryKey(true)); }