private BuilderClass builderClass() { return BuilderClass.of(this); }
public Artifact execute() { List<BuilderClassConstructor> constructorList = builder.constructorList(); List<Property> propertyList = builder.propertyList(); List<BuilderPropertyPlugin> pluginList = builder.builderPropertyPluginList(); type.addFields(field(constructorList)) .addFields(builder.customFieldSpecList()) .addMethods(constructor(constructorList)) .addMethod(build(constructorList)); for (Property property : propertyList) { for (BuilderPropertyPlugin plugin : pluginList) { if (plugin.test(property)) { plugin.execute(property).acceptBuilderClass(type); break; } } } return builder.artifact(type); }
@Override public void accept(Artifact.Builder artifactList) { artifactList.addArtifact(builderInterface().execute()); artifactList.addArtifact(builderClass().execute()); }
public static BuilderClass of(StandardBuilderConfiguration builder) { Naming naming = builder.naming(); TypeSpec.Builder type = TypeSpec.classBuilder(naming.builderClassSimpleName()) .addModifiers(Modifier.FINAL) .addSuperinterface(naming.builderInterfaceTypeNameUnbounded()); naming.typeVariableNameListTo(type); return new BuilderClass(builder, type); }
public Artifact execute() { List<BuilderClassConstructor> constructorList = builder.constructorList(); List<Property> propertyList = builder.propertyList(); List<BuilderPropertyPlugin> pluginList = builder.builderPropertyPluginList(); type.addFields(field(constructorList)) .addFields(builder.customFieldSpecList()) .addMethods(constructor(constructorList)) .addMethod(build(constructorList)); for (Property property : propertyList) { for (BuilderPropertyPlugin plugin : pluginList) { if (plugin.test(property)) { plugin.execute(property).acceptBuilderClass(type); break; } } } return builder.artifact(type); }
@Override public void accept(Artifact.Builder artifactList) { artifactList.addArtifact(builderInterface().execute()); artifactList.addArtifact(builderClass().execute()); }
public static BuilderClass of(StandardBuilderConfiguration builder) { Naming naming = builder.naming(); TypeSpec.Builder type = TypeSpec.classBuilder(naming.builderClassSimpleName()) .addModifiers(Modifier.FINAL) .addSuperinterface(naming.builderInterfaceTypeNameUnbounded()); naming.typeVariableNameListTo(type); return new BuilderClass(builder, type); }
private BuilderClass builderClass() { return BuilderClass.of(this); }