for (final ElementType elType : elTypes) {
switch (elType) {
case FIELD:
if (field.isAnnotationPresent(a)) {
accumulator.add(new AsyncDecoratorTask(injector, field, ctx.getDecorator(a)));
}
break;
}
}
}
}
for (final MetaMethod meth : visit.getDeclaredMethods()) {
if (InjectUtil.isInjectionPoint(ctx, meth)) {
accumulator.add(new AsyncInjectionTask(injector, meth));
}
for (final Class<? extends Annotation> a : decorators) {
final ElementType[] elTypes = a.isAnnotationPresent(Target.class) ? a.getAnnotation(Target.class).value()
: new ElementType[]{ElementType.METHOD};
for (final ElementType elType : elTypes) {
switch (elType) {
case METHOD:
if (meth.isAnnotationPresent(a)) {
accumulator.add(new AsyncDecoratorTask(injector, meth, ctx.getDecorator(a)));
}
break;
case PARAMETER:
for (final MetaParameter parameter : meth.getParameters()) {
if (parameter.isAnnotationPresent(a)) {
final AsyncDecoratorTask task = new AsyncDecoratorTask(injector, parameter, ctx.getDecorator(a));
accumulator.add(task);
}
}
}
}