@@ -53,22 +53,13 @@ TypeSpec generate() {
5353 TypeSpec .Builder spec = TypeSpec .classBuilder (component .generatedClass ())
5454 .addModifiers (modifiers )
5555 .addSuperinterface (component .element ().asType ());
56- MethodSpec . Builder constructor = MethodSpec . constructorBuilder (). addModifiers ( PRIVATE );
56+ MethodSpec constructor = generateConstructor ( );
5757 for (NamedBinding namedBinding : sorted .values ()) {
58- Binding b = namedBinding .binding ();
59- Key key = b .key ();
60- String name = namedBinding .name ();
61- if (namedBinding .isComponentRequest ()) {
62- FieldSpec field = FieldSpec .builder (key .typeName (), name , PRIVATE , FINAL ).build ();
63- spec .addField (field );
64- constructor .addStatement ("this.$N = $L" , field , b .invocation (names ));
65- } else if (!(b instanceof ParameterBinding )) {
66- ParameterSpec param = names .apply (key );
67- constructor .addStatement ("$T $N = $L" , b .key ().typeName (), param , b .invocation (names ));
68- }
69- if (b instanceof ParameterBinding ) {
70- constructor .addParameter (names .apply (key ));
58+ if (!namedBinding .isComponentRequest ()) {
59+ continue ;
7160 }
61+ TypeName type = namedBinding .binding ().key ().typeName ();
62+ spec .addField (FieldSpec .builder (type , namedBinding .name (), PRIVATE , FINAL ).build ());
7263 }
7364 for (DependencyRequest r : component .requests ()) {
7465 MethodSpec .Builder method = MethodSpec .methodBuilder (r .requestingElement ().getSimpleName ().toString ());
@@ -109,11 +100,31 @@ TypeSpec generate() {
109100 .addMember ("comments" , CodeBlock .of ("$S" , "https://github.com/jbock-java/simple-component" ))
110101 .build ());
111102 spec .addModifiers (FINAL );
112- spec .addMethod (constructor . build () );
103+ spec .addMethod (constructor );
113104 spec .addOriginatingElement (component .element ());
114105 return spec .build ();
115106 }
116107
108+ private MethodSpec generateConstructor () {
109+ MethodSpec .Builder constructor = MethodSpec .constructorBuilder ().addModifiers (PRIVATE );
110+ for (NamedBinding namedBinding : sorted .values ()) {
111+ Binding b = namedBinding .binding ();
112+ Key key = b .key ();
113+ String name = namedBinding .name ();
114+ if (namedBinding .isComponentRequest ()) {
115+ FieldSpec field = FieldSpec .builder (key .typeName (), name , PRIVATE , FINAL ).build ();
116+ constructor .addStatement ("this.$N = $L" , field , b .invocation (names ));
117+ } else if (!(b instanceof ParameterBinding )) {
118+ ParameterSpec param = names .apply (key );
119+ constructor .addStatement ("$T $N = $L" , b .key ().typeName (), param , b .invocation (names ));
120+ }
121+ if (b instanceof ParameterBinding ) {
122+ constructor .addParameter (names .apply (key ));
123+ }
124+ }
125+ return constructor .build ();
126+ }
127+
117128 private TypeSpec createFactoryImpl (FactoryElement factory ) {
118129 Collection <ParameterBinding > parameterBindings = component .parameterBindings ();
119130 TypeSpec .Builder spec = TypeSpec .classBuilder (factory .generatedClass ());
0 commit comments