@@ -31,6 +31,7 @@ final class MetaData {
31
31
* The list of dependencies with optional and named.
32
32
*/
33
33
private List <Dependency > dependsOn ;
34
+ private boolean generateProxy ;
34
35
35
36
MetaData (DependencyMeta meta ) {
36
37
this .type = meta .type ();
@@ -54,6 +55,14 @@ public String toString() {
54
55
return (name == null ) ? type : type + ":" + name ;
55
56
}
56
57
58
+ /**
59
+ * Return true if this is a component with Aspects applied to it.
60
+ * This means this type doesn't have a $DI but instead we have the $Proxy$DI.
61
+ */
62
+ boolean isGenerateProxy () {
63
+ return generateProxy ;
64
+ }
65
+
57
66
private String trimName (String name ) {
58
67
return "" .equals (name ) ? null : name ;
59
68
}
@@ -104,6 +113,7 @@ private List<String> asList(String[] content) {
104
113
void update (BeanReader beanReader ) {
105
114
this .provides = beanReader .getProvides ();
106
115
this .dependsOn = beanReader .getDependsOn ();
116
+ this .generateProxy = beanReader .isGenerateProxy ();
107
117
}
108
118
109
119
String getType () {
@@ -132,43 +142,45 @@ String getTopPackage() {
132
142
void addImportTypes (Set <String > importTypes ) {
133
143
if (hasMethod ()) {
134
144
importTypes .add (Util .classOfMethod (method ));
135
- } else {
145
+ } else if (! generateProxy ) {
136
146
importTypes .add (type + Constants .DI );
137
147
}
138
148
}
139
149
140
- String buildMethod (MetaDataOrdering ordering ) {
141
- StringBuilder sb = new StringBuilder (200 );
142
- sb .append (" @DependencyMeta(type=\" " ).append (type ).append ("\" " );
150
+ void buildMethod (Append append ) {
151
+ if (generateProxy ) {
152
+ return ;
153
+ }
154
+ append .append (" @DependencyMeta(type=\" " ).append (type ).append ("\" " );
143
155
if (name != null ) {
144
- sb .append (", name=\" " ).append (name ).append ("\" " );
156
+ append .append (", name=\" " ).append (name ).append ("\" " );
145
157
}
146
158
if (hasMethod ()) {
147
- sb .append (", method=\" " ).append (method ).append ("\" " );
159
+ append .append (", method=\" " ).append (method ).append ("\" " );
148
160
}
149
161
if (!provides .isEmpty ()) {
150
- appendProvides (sb , "provides" , provides );
162
+ appendProvides (append , "provides" , provides );
151
163
}
152
164
if (!dependsOn .isEmpty ()) {
153
- appendProvides (sb , "dependsOn" , dependsOn .stream ().map (Dependency ::dependsOn ).collect (Collectors .toList ()));
165
+ appendProvides (append , "dependsOn" , dependsOn .stream ().map (Dependency ::dependsOn ).collect (Collectors .toList ()));
154
166
}
155
- sb .append (")" ).append (NEWLINE );
156
- sb .append (" protected void build_" ).append (getBuildName ()).append ("() {" ).append (NEWLINE );
167
+ append .append (")" ).append (NEWLINE );
168
+ append .append (" protected void build_" ).append (getBuildName ()).append ("() {" ).append (NEWLINE );
157
169
if (hasMethod ()) {
158
- sb .append (" " ).append (Util .shortMethod (method )).append ("(builder" );
170
+ append .append (" " ).append (Util .shortMethod (method )).append ("(builder" );
159
171
} else {
160
- sb .append (" " ).append (shortType ).append (Constants .DI ).append (".build(builder" );
172
+ append .append (" " ).append (shortType ).append (Constants .DI ).append (".build(builder" );
161
173
}
162
- sb .append (");" ).append (NEWLINE );
163
- sb .append (" }" ).append (NEWLINE );
164
- return sb . toString ();
174
+ append .append (");" ).append (NEWLINE );
175
+ append .append (" }" ).append (NEWLINE );
176
+ append . eol ();
165
177
}
166
178
167
179
private boolean hasMethod () {
168
180
return method != null && !method .isEmpty ();
169
181
}
170
182
171
- private void appendProvides (StringBuilder sb , String attribute , List <String > types ) {
183
+ private void appendProvides (Append sb , String attribute , List <String > types ) {
172
184
sb .append (", " ).append (attribute ).append ("={" );
173
185
for (int i = 0 ; i < types .size (); i ++) {
174
186
if (i > 0 ) {
0 commit comments