35
35
import org .codehaus .groovy .transform .ASTTransformation ;
36
36
37
37
import java .util .Arrays ;
38
- import java .util .Collections ;
39
38
import java .util .HashSet ;
40
39
import java .util .Iterator ;
41
40
import java .util .LinkedHashSet ;
@@ -172,59 +171,51 @@ public void addTransform(final Class<? extends ASTTransformation> transform, fin
172
171
throw new UnsupportedOperationException ();
173
172
}
174
173
175
- @ Override
176
- public boolean declaresInterface (final ClassNode classNode ) {
177
- for (ClassNode delegate : delegates ) {
178
- if (delegate .declaresInterface (classNode )) return true ;
179
- }
180
- return false ;
181
- }
182
-
183
174
@ Override
184
175
public List <MethodNode > getAbstractMethods () {
185
- List <MethodNode > allMethods = new LinkedList <MethodNode >();
176
+ List <MethodNode > answer = new LinkedList <>();
186
177
for (ClassNode delegate : delegates ) {
187
- allMethods .addAll (delegate .getAbstractMethods ());
178
+ answer .addAll (delegate .getAbstractMethods ());
188
179
}
189
- return allMethods ;
180
+ return answer ;
190
181
}
191
182
192
183
@ Override
193
184
public List <MethodNode > getAllDeclaredMethods () {
194
- List <MethodNode > allMethods = new LinkedList <MethodNode >();
185
+ List <MethodNode > answer = new LinkedList <>();
195
186
for (ClassNode delegate : delegates ) {
196
- allMethods .addAll (delegate .getAllDeclaredMethods ());
187
+ answer .addAll (delegate .getAllDeclaredMethods ());
197
188
}
198
- return allMethods ;
189
+ return answer ;
199
190
}
200
191
201
192
@ Override
202
193
public Set <ClassNode > getAllInterfaces () {
203
- Set <ClassNode > allMethods = new HashSet <ClassNode >();
194
+ Set <ClassNode > answer = new HashSet <>();
204
195
for (ClassNode delegate : delegates ) {
205
- allMethods .addAll (delegate .getAllInterfaces ());
196
+ answer .addAll (delegate .getAllInterfaces ());
206
197
}
207
- return allMethods ;
198
+ return answer ;
208
199
}
209
200
210
201
@ Override
211
202
public List <AnnotationNode > getAnnotations () {
212
- List <AnnotationNode > nodes = new LinkedList <AnnotationNode >();
203
+ List <AnnotationNode > answer = new LinkedList <>();
213
204
for (ClassNode delegate : delegates ) {
214
205
List <AnnotationNode > annotations = delegate .getAnnotations ();
215
- if (annotations != null ) nodes .addAll (annotations );
206
+ if (annotations != null ) answer .addAll (annotations );
216
207
}
217
- return nodes ;
208
+ return answer ;
218
209
}
219
210
220
211
@ Override
221
212
public List <AnnotationNode > getAnnotations (final ClassNode type ) {
222
- List <AnnotationNode > nodes = new LinkedList <AnnotationNode >();
213
+ List <AnnotationNode > answer = new LinkedList <>();
223
214
for (ClassNode delegate : delegates ) {
224
215
List <AnnotationNode > annotations = delegate .getAnnotations (type );
225
- if (annotations != null ) nodes .addAll (annotations );
216
+ if (annotations != null ) answer .addAll (annotations );
226
217
}
227
- return nodes ;
218
+ return answer ;
228
219
}
229
220
230
221
@ Override
@@ -234,11 +225,11 @@ public ClassNode getComponentType() {
234
225
235
226
@ Override
236
227
public List <ConstructorNode > getDeclaredConstructors () {
237
- List <ConstructorNode > nodes = new LinkedList <ConstructorNode >();
228
+ List <ConstructorNode > answer = new LinkedList <>();
238
229
for (ClassNode delegate : delegates ) {
239
- nodes .addAll (delegate .getDeclaredConstructors ());
230
+ answer .addAll (delegate .getDeclaredConstructors ());
240
231
}
241
- return nodes ;
232
+ return answer ;
242
233
}
243
234
244
235
@ Override
@@ -261,12 +252,12 @@ public MethodNode getDeclaredMethod(final String name, final Parameter[] paramet
261
252
262
253
@ Override
263
254
public List <MethodNode > getDeclaredMethods (final String name ) {
264
- List <MethodNode > nodes = new LinkedList <MethodNode >();
255
+ List <MethodNode > answer = new LinkedList <>();
265
256
for (ClassNode delegate : delegates ) {
266
257
List <MethodNode > methods = delegate .getDeclaredMethods (name );
267
- if (methods != null ) nodes .addAll (methods );
258
+ if (methods != null ) answer .addAll (methods );
268
259
}
269
- return nodes ;
260
+ return answer ;
270
261
}
271
262
272
263
@ Override
@@ -290,12 +281,12 @@ public FieldNode getField(final String name) {
290
281
291
282
@ Override
292
283
public List <FieldNode > getFields () {
293
- List <FieldNode > nodes = new LinkedList <FieldNode >();
284
+ List <FieldNode > answer = new LinkedList <>();
294
285
for (ClassNode delegate : delegates ) {
295
286
List <FieldNode > fields = delegate .getFields ();
296
- if (fields != null ) nodes .addAll (fields );
287
+ if (fields != null ) answer .addAll (fields );
297
288
}
298
- return nodes ;
289
+ return answer ;
299
290
}
300
291
301
292
@ Override
@@ -305,22 +296,25 @@ public Iterator<InnerClassNode> getInnerClasses() {
305
296
306
297
@ Override
307
298
public ClassNode [] getInterfaces () {
308
- Set <ClassNode > nodes = new LinkedHashSet <ClassNode >();
299
+ Set <ClassNode > answer = new LinkedHashSet <>();
309
300
for (ClassNode delegate : delegates ) {
310
- ClassNode [] interfaces = delegate .getInterfaces ();
311
- if (interfaces != null ) Collections .addAll (nodes , interfaces );
301
+ if (delegate .isInterface ()) {
302
+ answer .remove (delegate ); answer .add (delegate );
303
+ } else {
304
+ answer .addAll (Arrays .asList (delegate .getInterfaces ()));
305
+ }
312
306
}
313
- return nodes .toArray (ClassNode .EMPTY_ARRAY );
307
+ return answer .toArray (ClassNode .EMPTY_ARRAY );
314
308
}
315
309
316
310
@ Override
317
311
public List <MethodNode > getMethods () {
318
- List <MethodNode > nodes = new LinkedList <MethodNode >();
312
+ List <MethodNode > answer = new LinkedList <>();
319
313
for (ClassNode delegate : delegates ) {
320
314
List <MethodNode > methods = delegate .getMethods ();
321
- if (methods != null ) nodes .addAll (methods );
315
+ if (methods != null ) answer .addAll (methods );
322
316
}
323
- return nodes ;
317
+ return answer ;
324
318
}
325
319
326
320
@ Override
@@ -334,12 +328,12 @@ public ClassNode getPlainNodeReference(final boolean skipPrimitives) {
334
328
335
329
@ Override
336
330
public List <PropertyNode > getProperties () {
337
- List <PropertyNode > nodes = new LinkedList <PropertyNode >();
331
+ List <PropertyNode > answer = new LinkedList <>();
338
332
for (ClassNode delegate : delegates ) {
339
333
List <PropertyNode > properties = delegate .getProperties ();
340
- if (properties != null ) nodes .addAll (properties );
334
+ if (properties != null ) answer .addAll (properties );
341
335
}
342
- return nodes ;
336
+ return answer ;
343
337
}
344
338
345
339
@ Override
@@ -349,22 +343,18 @@ public Class getTypeClass() {
349
343
350
344
@ Override
351
345
public ClassNode [] getUnresolvedInterfaces () {
352
- Set <ClassNode > nodes = new LinkedHashSet <ClassNode >();
353
- for (ClassNode delegate : delegates ) {
354
- ClassNode [] interfaces = delegate .getUnresolvedInterfaces ();
355
- if (interfaces != null ) Collections .addAll (nodes , interfaces );
356
- }
357
- return nodes .toArray (ClassNode .EMPTY_ARRAY );
346
+ return getUnresolvedInterfaces (false );
358
347
}
359
348
360
349
@ Override
361
350
public ClassNode [] getUnresolvedInterfaces (final boolean useRedirect ) {
362
- Set <ClassNode > nodes = new LinkedHashSet <ClassNode >();
363
- for (ClassNode delegate : delegates ) {
364
- ClassNode [] interfaces = delegate .getUnresolvedInterfaces (useRedirect );
365
- if (interfaces != null ) Collections .addAll (nodes , interfaces );
351
+ ClassNode [] interfaces = getInterfaces ();
352
+ if (useRedirect ) {
353
+ for (int i = 0 ; i < interfaces .length ; ++i ) {
354
+ interfaces [i ] = interfaces [i ].redirect ();
355
+ }
366
356
}
367
- return nodes . toArray ( ClassNode . EMPTY_ARRAY ) ;
357
+ return interfaces ;
368
358
}
369
359
370
360
@ Override
0 commit comments