3535
3636public class ComponentImpl {
3737
38+ private static final String FACTORY_METHOD = "factory" ;
39+ private static final String BUILDER_METHOD = "builder" ;
40+ private static final String CREATE_METHOD = "create" ;
41+ private static final String MOCK_BUILDER_METHOD = "mockBuilder" ;
42+
3843 private final ComponentElement component ;
3944 private final Map <Key , NamedBinding > sorted ;
4045 private final Function <Key , ParameterSpec > names ;
@@ -68,7 +73,7 @@ TypeSpec generate() {
6873 spec .addMethod (method .build ());
6974 }
7075 component .factoryElement ().ifPresent (factory -> {
71- spec .addMethod (MethodSpec .methodBuilder ("factory" )
76+ spec .addMethod (MethodSpec .methodBuilder (FACTORY_METHOD )
7277 .addModifiers (STATIC )
7378 .addModifiers (modifiers )
7479 .returns (TypeName .get (factory .element ().asType ()))
@@ -77,7 +82,7 @@ TypeSpec generate() {
7782 spec .addType (createFactoryImpl (factory ));
7883 });
7984 component .builderElement ().ifPresent (builder -> {
80- spec .addMethod (MethodSpec .methodBuilder ("builder" )
85+ spec .addMethod (MethodSpec .methodBuilder (BUILDER_METHOD )
8186 .addModifiers (STATIC )
8287 .addModifiers (modifiers )
8388 .returns (TypeName .get (builder .element ().asType ()))
@@ -87,9 +92,11 @@ TypeSpec generate() {
8792 });
8893 if (component .factoryElement ().isEmpty () && component .builderElement ().isEmpty ()) {
8994 spec .addMethod (generateCreateMethod ());
90- spec .addMethod (generateMockCreateMethod ());
9195 }
92- spec .addType (mockBuilder .generate ());
96+ if (!component .omitMockBuilder ()) {
97+ spec .addMethod (generateMockBuilderMethod ());
98+ spec .addType (mockBuilder .generate ());
99+ }
93100 spec .addAnnotation (AnnotationSpec .builder (Generated .class )
94101 .addMember ("value" , CodeBlock .of ("$S" , SimpleComponentProcessor .class .getCanonicalName ()))
95102 .addMember ("comments" , CodeBlock .of ("$S" , "https://github.com/jbock-java/simple-component" ))
@@ -102,7 +109,7 @@ TypeSpec generate() {
102109
103110 private MethodSpec generateCreateMethod () {
104111 List <CodeBlock > constructorParameters = new ArrayList <>();
105- MethodSpec .Builder method = MethodSpec .methodBuilder ("create" );
112+ MethodSpec .Builder method = MethodSpec .methodBuilder (CREATE_METHOD );
106113 for (NamedBinding namedBinding : sorted .values ()) {
107114 Binding b = namedBinding .binding ();
108115 Key key = b .key ();
@@ -123,12 +130,15 @@ private MethodSpec generateCreateMethod() {
123130 .build ();
124131 }
125132
126- MethodSpec generateMockCreateMethod () {
127- MethodSpec .Builder method = MethodSpec .methodBuilder ("mockBuilder" );
133+ MethodSpec generateMockBuilderMethod () {
134+ MethodSpec .Builder method = MethodSpec .methodBuilder (MOCK_BUILDER_METHOD );
128135 method .addJavadoc ("Visible for testing. Do not call this method from production code." );
129136 method .addStatement ("return new $T()" , mockBuilder .getClassName ());
130137 method .returns (mockBuilder .getClassName ());
131138 method .addModifiers (STATIC );
139+ if (component .generatePublicMockBuilder ()) {
140+ method .addModifiers (modifiers );
141+ }
132142 return method .build ();
133143 }
134144
0 commit comments