Revert "Introduce isSynthesizable in MergedAnnotation"
This reverts commit 32346b8382.
Closes gh-29093
This commit is contained in:
parent
75dfd47826
commit
8a0e1969b0
|
|
@ -477,15 +477,6 @@ public interface MergedAnnotation<A extends Annotation> {
|
|||
*/
|
||||
<T extends Map<String, Object>> T asMap(Function<MergedAnnotation<?>, T> factory, Adapt... adaptations);
|
||||
|
||||
/**
|
||||
* Determine if this merged annotation is <em>synthesizable</em>.
|
||||
* <p>Consult the documentation for {@link #synthesize()} for an explanation
|
||||
* of what is considered synthesizable.
|
||||
* @return {@code true} if the mapped annotation is synthesizable
|
||||
* @since 6.0
|
||||
*/
|
||||
boolean isSynthesizable();
|
||||
|
||||
/**
|
||||
* Create a type-safe synthesized version of this merged annotation that can
|
||||
* be used directly in code.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -134,11 +134,6 @@ final class MissingMergedAnnotation<A extends Annotation> extends AbstractMerged
|
|||
return factory.apply(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSynthesizable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "(missing)";
|
||||
|
|
|
|||
|
|
@ -319,17 +319,6 @@ final class TypeMappedAnnotation<A extends Annotation> extends AbstractMergedAnn
|
|||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSynthesizable() {
|
||||
// Is this a mapped annotation for a composed annotation, and are there
|
||||
// annotation attributes (mirrors) that need to be merged?
|
||||
if (getDistance() > 0 && this.resolvedMirrors.length > 0) {
|
||||
return true;
|
||||
}
|
||||
// Is the mapped annotation itself synthesizable?
|
||||
return this.mapping.isSynthesizable();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
protected A createSynthesizedAnnotation() {
|
||||
|
|
@ -358,15 +347,22 @@ final class TypeMappedAnnotation<A extends Annotation> extends AbstractMergedAnn
|
|||
* Determine if the supplied annotation has not already been synthesized
|
||||
* <strong>and</strong> whether the mapped annotation is a composed annotation
|
||||
* that needs to have its attributes merged or the mapped annotation is
|
||||
* {@linkplain #isSynthesizable() synthesizable} in general.
|
||||
* {@linkplain AnnotationTypeMapping#isSynthesizable() synthesizable} in general.
|
||||
* @param annotation the annotation to check
|
||||
* @since 5.3.22
|
||||
*/
|
||||
private boolean isSynthesizable(Annotation annotation) {
|
||||
// Already synthesized?
|
||||
if (AnnotationUtils.isSynthesizedAnnotation(annotation)) {
|
||||
return false;
|
||||
}
|
||||
return isSynthesizable();
|
||||
// Is this a mapped annotation for a composed annotation, and are there
|
||||
// annotation attributes (mirrors) that need to be merged?
|
||||
if (getDistance() > 0 && this.resolvedMirrors.length > 0) {
|
||||
return true;
|
||||
}
|
||||
// Is the mapped annotation itself synthesizable?
|
||||
return this.mapping.isSynthesizable();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1504,13 +1504,6 @@ class MergedAnnotationsTests {
|
|||
assertThat(synthesizedComponent.value()).isEqualTo("webController");
|
||||
}
|
||||
|
||||
@Test
|
||||
void isSynthesizableWithoutAttributeAliases() throws Exception {
|
||||
Component component = WebController.class.getAnnotation(Component.class);
|
||||
assertThat(component).isNotNull();
|
||||
assertThat(MergedAnnotation.from(component).isSynthesizable()).isFalse();
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 6.0
|
||||
*/
|
||||
|
|
@ -1595,16 +1588,10 @@ class MergedAnnotationsTests {
|
|||
void synthesizeShouldNotSynthesizeNonsynthesizableAnnotationsWhenUsingMergedAnnotationsFromApi() {
|
||||
MergedAnnotations mergedAnnotations = MergedAnnotations.from(SecurityConfig.class);
|
||||
|
||||
MergedAnnotation<EnableWebSecurity> enableWebSecurityAnnotation =
|
||||
mergedAnnotations.get(EnableWebSecurity.class);
|
||||
assertThat(enableWebSecurityAnnotation.isSynthesizable()).isFalse();
|
||||
EnableWebSecurity enableWebSecurity = enableWebSecurityAnnotation.synthesize();
|
||||
EnableWebSecurity enableWebSecurity = mergedAnnotations.get(EnableWebSecurity.class).synthesize();
|
||||
assertNotSynthesized(enableWebSecurity);
|
||||
|
||||
MergedAnnotation<EnableGlobalAuthentication> enableGlobalAuthenticationMergedAnnotation =
|
||||
mergedAnnotations.get(EnableGlobalAuthentication.class);
|
||||
assertThat(enableGlobalAuthenticationMergedAnnotation.isSynthesizable()).isFalse();
|
||||
EnableGlobalAuthentication enableGlobalAuthentication = enableGlobalAuthenticationMergedAnnotation.synthesize();
|
||||
EnableGlobalAuthentication enableGlobalAuthentication = mergedAnnotations.get(EnableGlobalAuthentication.class).synthesize();
|
||||
assertNotSynthesized(enableGlobalAuthentication);
|
||||
}
|
||||
|
||||
|
|
@ -1750,9 +1737,7 @@ class MergedAnnotationsTests {
|
|||
private void testSynthesisWithImplicitAliases(Class<?> clazz, String expected) throws Exception {
|
||||
ImplicitAliasesTestConfiguration config = clazz.getAnnotation(ImplicitAliasesTestConfiguration.class);
|
||||
assertThat(config).isNotNull();
|
||||
MergedAnnotation<ImplicitAliasesTestConfiguration> mergedAnnotation = MergedAnnotation.from(config);
|
||||
assertThat(mergedAnnotation.isSynthesizable()).isTrue();
|
||||
ImplicitAliasesTestConfiguration synthesized = mergedAnnotation.synthesize();
|
||||
ImplicitAliasesTestConfiguration synthesized = MergedAnnotation.from(config).synthesize();
|
||||
assertSynthesized(synthesized);
|
||||
assertThat(synthesized.value()).isEqualTo(expected);
|
||||
assertThat(synthesized.location1()).isEqualTo(expected);
|
||||
|
|
@ -1779,11 +1764,8 @@ class MergedAnnotationsTests {
|
|||
ImplicitAliasesWithImpliedAliasNamesOmittedTestConfiguration config = clazz.getAnnotation(
|
||||
ImplicitAliasesWithImpliedAliasNamesOmittedTestConfiguration.class);
|
||||
assertThat(config).isNotNull();
|
||||
MergedAnnotation<ImplicitAliasesWithImpliedAliasNamesOmittedTestConfiguration> mergedAnnotation =
|
||||
MergedAnnotation.from(config);
|
||||
assertThat(mergedAnnotation.isSynthesizable()).isTrue();
|
||||
ImplicitAliasesWithImpliedAliasNamesOmittedTestConfiguration synthesized =
|
||||
mergedAnnotation.synthesize();
|
||||
MergedAnnotation.from(config).synthesize();
|
||||
assertSynthesized(synthesized);
|
||||
assertThat(synthesized.value()).isEqualTo(expected);
|
||||
assertThat(synthesized.location()).isEqualTo(expected);
|
||||
|
|
|
|||
|
|
@ -255,11 +255,6 @@ class MissingMergedAnnotationTests {
|
|||
assertThat(this.missing.getDefaultValue("value", Integer.class)).isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
void isSynthesizableReturnsFalse() {
|
||||
assertThat(this.missing.isSynthesizable()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void synthesizeThrowsNoSuchElementException() {
|
||||
assertThatNoSuchElementException().isThrownBy(this.missing::synthesize);
|
||||
|
|
|
|||
Loading…
Reference in New Issue