Polishing
This commit is contained in:
		
							parent
							
								
									c2141e2e93
								
							
						
					
					
						commit
						3b9d1a00b0
					
				| 
						 | 
					@ -100,8 +100,7 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements
 | 
				
			||||||
	public Set<String> getAnnotationTypes() {
 | 
						public Set<String> getAnnotationTypes() {
 | 
				
			||||||
		Set<String> annotationTypes = this.annotationTypes;
 | 
							Set<String> annotationTypes = this.annotationTypes;
 | 
				
			||||||
		if (annotationTypes == null) {
 | 
							if (annotationTypes == null) {
 | 
				
			||||||
			annotationTypes = Collections.unmodifiableSet(
 | 
								annotationTypes = Collections.unmodifiableSet(AnnotationMetadata.super.getAnnotationTypes());
 | 
				
			||||||
					AnnotationMetadata.super.getAnnotationTypes());
 | 
					 | 
				
			||||||
			this.annotationTypes = annotationTypes;
 | 
								this.annotationTypes = annotationTypes;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return annotationTypes;
 | 
							return annotationTypes;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -156,6 +156,4 @@ final class SimpleAnnotationMetadata implements AnnotationMetadata {
 | 
				
			||||||
		return this.annotations;
 | 
							return this.annotations;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,8 +38,7 @@ public abstract class AbstractAnnotationMetadataTests {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void getClassNameReturnsClassName() {
 | 
						public void getClassNameReturnsClassName() {
 | 
				
			||||||
		assertThat(get(TestClass.class).getClassName()).isEqualTo(
 | 
							assertThat(get(TestClass.class).getClassName()).isEqualTo(TestClass.class.getName());
 | 
				
			||||||
				TestClass.class.getName());
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
| 
						 | 
					@ -93,16 +92,13 @@ public abstract class AbstractAnnotationMetadataTests {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void getEnclosingClassNameWhenHasNoEnclosingClassReturnsNull() {
 | 
						public void getEnclosingClassNameWhenHasNoEnclosingClassReturnsNull() {
 | 
				
			||||||
		assertThat(get(
 | 
							assertThat(get(AbstractAnnotationMetadataTests.class).getEnclosingClassName()).isNull();
 | 
				
			||||||
				AbstractAnnotationMetadataTests.class).getEnclosingClassName()).isNull();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void getSuperClassNameWhenHasSuperClassReturnsName() {
 | 
						public void getSuperClassNameWhenHasSuperClassReturnsName() {
 | 
				
			||||||
		assertThat(get(TestSubclass.class).getSuperClassName()).isEqualTo(
 | 
							assertThat(get(TestSubclass.class).getSuperClassName()).isEqualTo(TestClass.class.getName());
 | 
				
			||||||
				TestClass.class.getName());
 | 
							assertThat(get(TestClass.class).getSuperClassName()).isEqualTo(Object.class.getName());
 | 
				
			||||||
		assertThat(get(TestClass.class).getSuperClassName()).isEqualTo(
 | 
					 | 
				
			||||||
				Object.class.getName());
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
| 
						 | 
					@ -114,11 +110,8 @@ public abstract class AbstractAnnotationMetadataTests {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void getInterfaceNamesWhenHasInterfacesReturnsNames() {
 | 
						public void getInterfaceNamesWhenHasInterfacesReturnsNames() {
 | 
				
			||||||
		assertThat(get(TestSubclass.class).getInterfaceNames()).containsExactlyInAnyOrder(
 | 
							assertThat(get(TestSubclass.class).getInterfaceNames()).containsExactlyInAnyOrder(TestInterface.class.getName());
 | 
				
			||||||
				TestInterface.class.getName());
 | 
							assertThat(get(TestSubInterface.class).getInterfaceNames()).containsExactlyInAnyOrder(TestInterface.class.getName());
 | 
				
			||||||
		assertThat(get(
 | 
					 | 
				
			||||||
				TestSubInterface.class).getInterfaceNames()).containsExactlyInAnyOrder(
 | 
					 | 
				
			||||||
						TestInterface.class.getName());
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
| 
						 | 
					@ -128,10 +121,8 @@ public abstract class AbstractAnnotationMetadataTests {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void getMemberClassNamesWhenHasMemberClassesReturnsNames() {
 | 
						public void getMemberClassNamesWhenHasMemberClassesReturnsNames() {
 | 
				
			||||||
		assertThat(get(
 | 
							assertThat(get(TestMemberClass.class).getMemberClassNames()).containsExactlyInAnyOrder(
 | 
				
			||||||
				TestMemberClass.class).getMemberClassNames()).containsExactlyInAnyOrder(
 | 
								TestMemberClassInnerClass.class.getName(), TestMemberClassInnerInterface.class.getName());
 | 
				
			||||||
						TestMemberClassInnerClass.class.getName(),
 | 
					 | 
				
			||||||
						TestMemberClassInnerInterface.class.getName());
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
| 
						 | 
					@ -141,44 +132,37 @@ public abstract class AbstractAnnotationMetadataTests {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void getAnnotationsReturnsDirectAnnotations() {
 | 
						public void getAnnotationsReturnsDirectAnnotations() {
 | 
				
			||||||
		AnnotationMetadata metadata = get(WithDirectAnnotations.class);
 | 
							assertThat(get(WithDirectAnnotations.class).getAnnotations().stream())
 | 
				
			||||||
		assertThat(metadata.getAnnotations().stream().filter(
 | 
								.filteredOn(MergedAnnotation::isDirectlyPresent)
 | 
				
			||||||
				MergedAnnotation::isDirectlyPresent).map(
 | 
								.extracting(a -> a.getType().getName())
 | 
				
			||||||
						a -> a.getType().getName())).containsExactlyInAnyOrder(
 | 
								.containsExactlyInAnyOrder(DirectAnnotation1.class.getName(), DirectAnnotation2.class.getName());
 | 
				
			||||||
								DirectAnnotation1.class.getName(),
 | 
					 | 
				
			||||||
								DirectAnnotation2.class.getName());
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void isAnnotatedWhenMatchesDirectAnnotationReturnsTrue() {
 | 
						public void isAnnotatedWhenMatchesDirectAnnotationReturnsTrue() {
 | 
				
			||||||
		assertThat(get(WithDirectAnnotations.class).isAnnotated(
 | 
							assertThat(get(WithDirectAnnotations.class).isAnnotated(DirectAnnotation1.class.getName())).isTrue();
 | 
				
			||||||
				DirectAnnotation1.class.getName())).isTrue();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void isAnnotatedWhenMatchesMetaAnnotationReturnsTrue() {
 | 
						public void isAnnotatedWhenMatchesMetaAnnotationReturnsTrue() {
 | 
				
			||||||
		assertThat(get(WithMetaAnnotations.class).isAnnotated(
 | 
							assertThat(get(WithMetaAnnotations.class).isAnnotated(MetaAnnotation2.class.getName())).isTrue();
 | 
				
			||||||
				MetaAnnotation2.class.getName())).isTrue();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void isAnnotatedWhenDoesNotMatchDirectOrMetaAnnotationReturnsFalse() {
 | 
						public void isAnnotatedWhenDoesNotMatchDirectOrMetaAnnotationReturnsFalse() {
 | 
				
			||||||
		assertThat(get(TestClass.class).isAnnotated(
 | 
							assertThat(get(TestClass.class).isAnnotated(DirectAnnotation1.class.getName())).isFalse();
 | 
				
			||||||
				DirectAnnotation1.class.getName())).isFalse();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void getAnnotationAttributesReturnsAttributes() {
 | 
						public void getAnnotationAttributesReturnsAttributes() {
 | 
				
			||||||
		assertThat(get(WithAnnotationAttributes.class).getAnnotationAttributes(
 | 
							assertThat(get(WithAnnotationAttributes.class).getAnnotationAttributes(AnnotationAttributes.class.getName()))
 | 
				
			||||||
				AnnotationAttributes.class.getName())).containsOnly(entry("name", "test"),
 | 
								.containsOnly(entry("name", "test"), entry("size", 1));
 | 
				
			||||||
						entry("size", 1));
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void getAllAnnotationAttributesReturnsAllAttributes() {
 | 
						public void getAllAnnotationAttributesReturnsAllAttributes() {
 | 
				
			||||||
		MultiValueMap<String, Object> attributes = get(
 | 
							MultiValueMap<String, Object> attributes =
 | 
				
			||||||
				WithMetaAnnotationAttributes.class).getAllAnnotationAttributes(
 | 
									get(WithMetaAnnotationAttributes.class).getAllAnnotationAttributes(AnnotationAttributes.class.getName());
 | 
				
			||||||
						AnnotationAttributes.class.getName());
 | 
					 | 
				
			||||||
		assertThat(attributes).containsOnlyKeys("name", "size");
 | 
							assertThat(attributes).containsOnlyKeys("name", "size");
 | 
				
			||||||
		assertThat(attributes.get("name")).containsExactlyInAnyOrder("m1", "m2");
 | 
							assertThat(attributes.get("name")).containsExactlyInAnyOrder("m1", "m2");
 | 
				
			||||||
		assertThat(attributes.get("size")).containsExactlyInAnyOrder(1, 2);
 | 
							assertThat(attributes.get("size")).containsExactlyInAnyOrder(1, 2);
 | 
				
			||||||
| 
						 | 
					@ -194,155 +178,126 @@ public abstract class AbstractAnnotationMetadataTests {
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void getMetaAnnotationTypesReturnsMetaAnnotations() {
 | 
						public void getMetaAnnotationTypesReturnsMetaAnnotations() {
 | 
				
			||||||
		AnnotationMetadata metadata = get(WithMetaAnnotations.class);
 | 
							AnnotationMetadata metadata = get(WithMetaAnnotations.class);
 | 
				
			||||||
		assertThat(metadata.getMetaAnnotationTypes(
 | 
							assertThat(metadata.getMetaAnnotationTypes(MetaAnnotationRoot.class.getName()))
 | 
				
			||||||
				MetaAnnotationRoot.class.getName())).containsExactlyInAnyOrder(
 | 
								.containsExactlyInAnyOrder(MetaAnnotation1.class.getName(), MetaAnnotation2.class.getName());
 | 
				
			||||||
						MetaAnnotation1.class.getName(), MetaAnnotation2.class.getName());
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void hasAnnotationWhenMatchesDirectAnnotationReturnsTrue() {
 | 
						public void hasAnnotationWhenMatchesDirectAnnotationReturnsTrue() {
 | 
				
			||||||
		assertThat(get(WithDirectAnnotations.class).hasAnnotation(
 | 
							assertThat(get(WithDirectAnnotations.class).hasAnnotation(DirectAnnotation1.class.getName())).isTrue();
 | 
				
			||||||
				DirectAnnotation1.class.getName())).isTrue();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void hasAnnotationWhenMatchesMetaAnnotationReturnsFalse() {
 | 
						public void hasAnnotationWhenMatchesMetaAnnotationReturnsFalse() {
 | 
				
			||||||
		assertThat(get(WithMetaAnnotations.class).hasAnnotation(
 | 
							assertThat(get(WithMetaAnnotations.class).hasAnnotation(MetaAnnotation1.class.getName())).isFalse();
 | 
				
			||||||
				MetaAnnotation1.class.getName())).isFalse();
 | 
							assertThat(get(WithMetaAnnotations.class).hasAnnotation(MetaAnnotation2.class.getName())).isFalse();
 | 
				
			||||||
		assertThat(get(WithMetaAnnotations.class).hasAnnotation(
 | 
					 | 
				
			||||||
				MetaAnnotation2.class.getName())).isFalse();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void hasAnnotationWhenDoesNotMatchDirectOrMetaAnnotationReturnsFalse() {
 | 
						public void hasAnnotationWhenDoesNotMatchDirectOrMetaAnnotationReturnsFalse() {
 | 
				
			||||||
		assertThat(get(TestClass.class).hasAnnotation(
 | 
							assertThat(get(TestClass.class).hasAnnotation(DirectAnnotation1.class.getName())).isFalse();
 | 
				
			||||||
				DirectAnnotation1.class.getName())).isFalse();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void hasMetaAnnotationWhenMatchesDirectReturnsFalse() {
 | 
						public void hasMetaAnnotationWhenMatchesDirectReturnsFalse() {
 | 
				
			||||||
		assertThat(get(WithDirectAnnotations.class).hasMetaAnnotation(
 | 
							assertThat(get(WithDirectAnnotations.class).hasMetaAnnotation(DirectAnnotation1.class.getName())).isFalse();
 | 
				
			||||||
				DirectAnnotation1.class.getName())).isFalse();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void hasMetaAnnotationWhenMatchesMetaAnnotationReturnsTrue() {
 | 
						public void hasMetaAnnotationWhenMatchesMetaAnnotationReturnsTrue() {
 | 
				
			||||||
		assertThat(get(WithMetaAnnotations.class).hasMetaAnnotation(
 | 
							assertThat(get(WithMetaAnnotations.class).hasMetaAnnotation(MetaAnnotation1.class.getName())).isTrue();
 | 
				
			||||||
				MetaAnnotation1.class.getName())).isTrue();
 | 
							assertThat(get(WithMetaAnnotations.class).hasMetaAnnotation(MetaAnnotation2.class.getName())).isTrue();
 | 
				
			||||||
		assertThat(get(WithMetaAnnotations.class).hasMetaAnnotation(
 | 
					 | 
				
			||||||
				MetaAnnotation2.class.getName())).isTrue();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void hasMetaAnnotationWhenDoesNotMatchDirectOrMetaAnnotationReturnsFalse() {
 | 
						public void hasMetaAnnotationWhenDoesNotMatchDirectOrMetaAnnotationReturnsFalse() {
 | 
				
			||||||
		assertThat(get(TestClass.class).hasMetaAnnotation(
 | 
							assertThat(get(TestClass.class).hasMetaAnnotation(MetaAnnotation1.class.getName())).isFalse();
 | 
				
			||||||
				MetaAnnotation1.class.getName())).isFalse();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void hasAnnotatedMethodsWhenMatchesDirectAnnotationReturnsTrue() {
 | 
						public void hasAnnotatedMethodsWhenMatchesDirectAnnotationReturnsTrue() {
 | 
				
			||||||
		assertThat(get(WithAnnotatedMethod.class).hasAnnotatedMethods(
 | 
							assertThat(get(WithAnnotatedMethod.class).hasAnnotatedMethods(DirectAnnotation1.class.getName())).isTrue();
 | 
				
			||||||
				DirectAnnotation1.class.getName())).isTrue();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void hasAnnotatedMethodsWhenMatchesMetaAnnotationReturnsTrue() {
 | 
						public void hasAnnotatedMethodsWhenMatchesMetaAnnotationReturnsTrue() {
 | 
				
			||||||
		assertThat(get(WithMetaAnnotatedMethod.class).hasAnnotatedMethods(
 | 
							assertThat(get(WithMetaAnnotatedMethod.class).hasAnnotatedMethods(MetaAnnotation2.class.getName())).isTrue();
 | 
				
			||||||
				MetaAnnotation2.class.getName())).isTrue();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void hasAnnotatedMethodsWhenDoesNotMatchAnyAnnotationReturnsFalse() {
 | 
						public void hasAnnotatedMethodsWhenDoesNotMatchAnyAnnotationReturnsFalse() {
 | 
				
			||||||
		assertThat(get(WithAnnotatedMethod.class).hasAnnotatedMethods(
 | 
							assertThat(get(WithAnnotatedMethod.class).hasAnnotatedMethods(MetaAnnotation2.class.getName())).isFalse();
 | 
				
			||||||
				MetaAnnotation2.class.getName())).isFalse();
 | 
							assertThat(get(WithNonAnnotatedMethod.class).hasAnnotatedMethods(DirectAnnotation1.class.getName())).isFalse();
 | 
				
			||||||
		assertThat(get(WithNonAnnotatedMethod.class).hasAnnotatedMethods(
 | 
					 | 
				
			||||||
				DirectAnnotation1.class.getName())).isFalse();
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	public void getAnnotatedMethodsReturnsMatchingAnnotatedAndMetaAnnotatedMethods() {
 | 
						public void getAnnotatedMethodsReturnsMatchingAnnotatedAndMetaAnnotatedMethods() {
 | 
				
			||||||
		assertThat(get(WithDirectAndMetaAnnotatedMethods.class).getAnnotatedMethods(
 | 
							assertThat(get(WithDirectAndMetaAnnotatedMethods.class).getAnnotatedMethods(MetaAnnotation2.class.getName()))
 | 
				
			||||||
				MetaAnnotation2.class.getName()).stream().map(
 | 
								.extracting(MethodMetadata::getMethodName)
 | 
				
			||||||
						MethodMetadata::getMethodName)).containsExactlyInAnyOrder(
 | 
								.containsExactlyInAnyOrder("direct", "meta");
 | 
				
			||||||
								"direct", "meta");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	protected abstract AnnotationMetadata get(Class<?> source);
 | 
						protected abstract AnnotationMetadata get(Class<?> source);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Retention(RetentionPolicy.RUNTIME)
 | 
					 | 
				
			||||||
	public static @interface DirectAnnotation1 {
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Retention(RetentionPolicy.RUNTIME)
 | 
				
			||||||
 | 
						public @interface DirectAnnotation1 {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Retention(RetentionPolicy.RUNTIME)
 | 
						@Retention(RetentionPolicy.RUNTIME)
 | 
				
			||||||
	public static @interface DirectAnnotation2 {
 | 
						public @interface DirectAnnotation2 {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Retention(RetentionPolicy.RUNTIME)
 | 
						@Retention(RetentionPolicy.RUNTIME)
 | 
				
			||||||
	@MetaAnnotation1
 | 
						@MetaAnnotation1
 | 
				
			||||||
	public static @interface MetaAnnotationRoot {
 | 
						public @interface MetaAnnotationRoot {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Retention(RetentionPolicy.RUNTIME)
 | 
						@Retention(RetentionPolicy.RUNTIME)
 | 
				
			||||||
	@MetaAnnotation2
 | 
						@MetaAnnotation2
 | 
				
			||||||
	public static @interface MetaAnnotation1 {
 | 
						public @interface MetaAnnotation1 {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Retention(RetentionPolicy.RUNTIME)
 | 
						@Retention(RetentionPolicy.RUNTIME)
 | 
				
			||||||
	public static @interface MetaAnnotation2 {
 | 
						public @interface MetaAnnotation2 {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static class TestClass {
 | 
						public static class TestClass {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static interface TestInterface {
 | 
						public static interface TestInterface {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static interface TestSubInterface extends TestInterface {
 | 
						public static interface TestSubInterface extends TestInterface {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public @interface TestAnnotation {
 | 
						public @interface TestAnnotation {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static final class TestFinalClass {
 | 
						public static final class TestFinalClass {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public class TestNonStaticInnerClass {
 | 
						public class TestNonStaticInnerClass {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static class TestSubclass extends TestClass implements TestInterface {
 | 
						public static class TestSubclass extends TestClass implements TestInterface {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@DirectAnnotation1
 | 
						@DirectAnnotation1
 | 
				
			||||||
	@DirectAnnotation2
 | 
						@DirectAnnotation2
 | 
				
			||||||
	public static class WithDirectAnnotations {
 | 
						public static class WithDirectAnnotations {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@MetaAnnotationRoot
 | 
						@MetaAnnotationRoot
 | 
				
			||||||
	public static class WithMetaAnnotations {
 | 
						public static class WithMetaAnnotations {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static class TestMemberClass {
 | 
						public static class TestMemberClass {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		public static class TestMemberClassInnerClass {
 | 
							public static class TestMemberClassInnerClass {
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		interface TestMemberClassInnerInterface {
 | 
							interface TestMemberClassInnerInterface {
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -384,29 +339,25 @@ public abstract class AbstractAnnotationMetadataTests {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@AnnotationAttributes(name = "test", size = 1)
 | 
						@AnnotationAttributes(name = "test", size = 1)
 | 
				
			||||||
	public static class WithAnnotationAttributes {
 | 
						public static class WithAnnotationAttributes {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@MetaAnnotationAttributes1
 | 
						@MetaAnnotationAttributes1
 | 
				
			||||||
	@MetaAnnotationAttributes2
 | 
						@MetaAnnotationAttributes2
 | 
				
			||||||
	public static class WithMetaAnnotationAttributes {
 | 
						public static class WithMetaAnnotationAttributes {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Retention(RetentionPolicy.RUNTIME)
 | 
						@Retention(RetentionPolicy.RUNTIME)
 | 
				
			||||||
	@AnnotationAttributes(name = "m1", size = 1)
 | 
						@AnnotationAttributes(name = "m1", size = 1)
 | 
				
			||||||
	public static @interface MetaAnnotationAttributes1 {
 | 
						public @interface MetaAnnotationAttributes1 {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Retention(RetentionPolicy.RUNTIME)
 | 
						@Retention(RetentionPolicy.RUNTIME)
 | 
				
			||||||
	@AnnotationAttributes(name = "m2", size = 2)
 | 
						@AnnotationAttributes(name = "m2", size = 2)
 | 
				
			||||||
	public static @interface MetaAnnotationAttributes2 {
 | 
						public @interface MetaAnnotationAttributes2 {
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Retention(RetentionPolicy.RUNTIME)
 | 
						@Retention(RetentionPolicy.RUNTIME)
 | 
				
			||||||
	public static @interface AnnotationAttributes {
 | 
						public @interface AnnotationAttributes {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		String name();
 | 
							String name();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue