|
|
|
@ -95,19 +95,13 @@ abstract class AnnotationsScanner { |
|
|
|
private static <C, R> R processClass(C context, Class<?> source, |
|
|
|
private static <C, R> R processClass(C context, Class<?> source, |
|
|
|
SearchStrategy searchStrategy, AnnotationsProcessor<C, R> processor) { |
|
|
|
SearchStrategy searchStrategy, AnnotationsProcessor<C, R> processor) { |
|
|
|
|
|
|
|
|
|
|
|
switch (searchStrategy) { |
|
|
|
return switch (searchStrategy) { |
|
|
|
case DIRECT: |
|
|
|
case DIRECT -> processElement(context, source, processor); |
|
|
|
return processElement(context, source, processor); |
|
|
|
case INHERITED_ANNOTATIONS -> processClassInheritedAnnotations(context, source, searchStrategy, processor); |
|
|
|
case INHERITED_ANNOTATIONS: |
|
|
|
case SUPERCLASS -> processClassHierarchy(context, source, processor, false, false); |
|
|
|
return processClassInheritedAnnotations(context, source, searchStrategy, processor); |
|
|
|
case TYPE_HIERARCHY -> processClassHierarchy(context, source, processor, true, false); |
|
|
|
case SUPERCLASS: |
|
|
|
case TYPE_HIERARCHY_AND_ENCLOSING_CLASSES -> processClassHierarchy(context, source, processor, true, true); |
|
|
|
return processClassHierarchy(context, source, processor, false, false); |
|
|
|
}; |
|
|
|
case TYPE_HIERARCHY: |
|
|
|
|
|
|
|
return processClassHierarchy(context, source, processor, true, false); |
|
|
|
|
|
|
|
case TYPE_HIERARCHY_AND_ENCLOSING_CLASSES: |
|
|
|
|
|
|
|
return processClassHierarchy(context, source, processor, true, true); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
throw new IllegalStateException("Unsupported search strategy " + searchStrategy); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Nullable |
|
|
|
@Nullable |
|
|
|
@ -238,19 +232,14 @@ abstract class AnnotationsScanner { |
|
|
|
private static <C, R> R processMethod(C context, Method source, |
|
|
|
private static <C, R> R processMethod(C context, Method source, |
|
|
|
SearchStrategy searchStrategy, AnnotationsProcessor<C, R> processor) { |
|
|
|
SearchStrategy searchStrategy, AnnotationsProcessor<C, R> processor) { |
|
|
|
|
|
|
|
|
|
|
|
switch (searchStrategy) { |
|
|
|
return switch (searchStrategy) { |
|
|
|
case DIRECT: |
|
|
|
case DIRECT, INHERITED_ANNOTATIONS -> processMethodInheritedAnnotations(context, source, processor); |
|
|
|
case INHERITED_ANNOTATIONS: |
|
|
|
case SUPERCLASS -> processMethodHierarchy(context, new int[]{0}, source.getDeclaringClass(), |
|
|
|
return processMethodInheritedAnnotations(context, source, processor); |
|
|
|
processor, source, false); |
|
|
|
case SUPERCLASS: |
|
|
|
case TYPE_HIERARCHY, TYPE_HIERARCHY_AND_ENCLOSING_CLASSES -> processMethodHierarchy(context, new int[]{0}, |
|
|
|
return processMethodHierarchy(context, new int[] {0}, source.getDeclaringClass(), |
|
|
|
source.getDeclaringClass(), |
|
|
|
processor, source, false); |
|
|
|
processor, source, true); |
|
|
|
case TYPE_HIERARCHY: |
|
|
|
}; |
|
|
|
case TYPE_HIERARCHY_AND_ENCLOSING_CLASSES: |
|
|
|
|
|
|
|
return processMethodHierarchy(context, new int[] {0}, source.getDeclaringClass(), |
|
|
|
|
|
|
|
processor, source, true); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
throw new IllegalStateException("Unsupported search strategy " + searchStrategy); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Nullable |
|
|
|
@Nullable |
|
|
|
|