Simplify search algorithms in AnnotatedElementUtils
This commit introduces a boolean alwaysProcesses() method in the Processor API which allows for simplification across all search algorithms within AnnotatedElementUtils. Specifically, it is no longer necessary for process() methods to verify that the supplied annotation is actually the sought target annotation. In addition, duplicated code has been extracted into common methods (e.g., hasMetaAnnotationTypes()) and common Processor implementations (e.g., AlwaysTrueBooleanAnnotationProcessor).
This commit is contained in:
@@ -70,18 +70,25 @@ public class AnnotatedElementUtilsTests {
|
||||
@Test
|
||||
public void getMetaAnnotationTypesOnNonAnnotatedClass() {
|
||||
assertNull(getMetaAnnotationTypes(NonAnnotatedClass.class, TransactionalComponent.class));
|
||||
assertNull(getMetaAnnotationTypes(NonAnnotatedClass.class, TransactionalComponent.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMetaAnnotationTypesOnClassWithMetaDepth1() {
|
||||
Set<String> names = getMetaAnnotationTypes(TransactionalComponentClass.class, TransactionalComponent.class);
|
||||
assertEquals(names(Transactional.class, Component.class), names);
|
||||
|
||||
names = getMetaAnnotationTypes(TransactionalComponentClass.class, TransactionalComponent.class.getName());
|
||||
assertEquals(names(Transactional.class, Component.class), names);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMetaAnnotationTypesOnClassWithMetaDepth2() {
|
||||
Set<String> names = getMetaAnnotationTypes(ComposedTransactionalComponentClass.class, ComposedTransactionalComponent.class);
|
||||
assertEquals(names(TransactionalComponent.class, Transactional.class, Component.class), names);
|
||||
|
||||
names = getMetaAnnotationTypes(ComposedTransactionalComponentClass.class, ComposedTransactionalComponent.class.getName());
|
||||
assertEquals(names(TransactionalComponent.class, Transactional.class, Component.class), names);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user