Class AnnotationMetadataHierarchy
- All Implemented Interfaces:
AnnotationMetadata,AnnotationSource,Iterable<AnnotationMetadata>
AnnotationMetadata instance passed
to the constructor represents the annotation metadata that is declared, hence methods like hasDeclaredAnnotation(String) will return true for the last annotation metadata passed in the hierarchy.
This class is used to internally optimize memory usage and compilation time for classes that declare AOP advice at the type level and where the classes methods typically don't include any annotations and therefore would be wasteful to generate additional annotation metadata classes.
- Since:
- 1.3.0
- Author:
- graemerocher
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final AnnotationMetadata[]Constant to represent an empty hierarchy.Fields inherited from interface io.micronaut.core.annotation.AnnotationMetadata
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBERFields inherited from interface io.micronaut.core.annotation.AnnotationSource
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionAnnotationMetadataHierarchy(boolean delegateDeclaredToAllElements, AnnotationMetadata... hierarchy) Default constructor.AnnotationMetadataHierarchy(AnnotationMetadata... hierarchy) Default constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanValue(@NonNull Class<? extends Annotation> annotation, @NonNull String member, Function<Object, Object> valueMapper) booleanValue(@NonNull String annotation, @NonNull String member) The value as an optional boolean for the given annotation and member.booleanValue(@NonNull String annotation, @NonNull String member, @Nullable Function<Object, Object> valueMapper) booleanValue(Class<? extends Annotation> annotation, String member) The value as an optional boolean for the given annotation and member.classValue(@NonNull Class<? extends Annotation> annotation, @NonNull String member, Function<Object, Object> valueMapper) classValue(@NonNull String annotation, @NonNull String member) The value of the annotation as a Class.classValue(@NonNull String annotation, @NonNull String member, @Nullable Function<Object, Object> valueMapper) classValue(Class<? extends Annotation> annotation, String member) The value of the annotation as a Class.classValues(@NonNull String annotation, @NonNull String member) The value of the annotation as a Class.<T> Class<T>[]classValues(Class<? extends Annotation> annotation, String member) The value of the annotation as a Class.Makes a copy of the annotation or returns this.Create a new hierarchy instance from this metadata using this metadata's parents.doubleValue(@NonNull Class<? extends Annotation> annotation, @NonNull String member) The value as anOptionalDoublefor the given annotation and member.doubleValue(@NonNull Class<? extends Annotation> annotation, @NonNull String member, @Nullable Function<Object, Object> valueMapper) doubleValue(@NonNull String annotation, @NonNull String member) The value as anOptionalDoublefor the given annotation and member.doubleValue(@NonNull String annotation, @NonNull String member, Function<Object, Object> valueMapper) enumValue(@NonNull Class<? extends Annotation> annotation, @NonNull String member, Class<E> enumType) The value of the annotation as a Class.enumValue(@NonNull Class<? extends Annotation> annotation, @NonNull String member, Class<E> enumType, @Nullable Function<Object, Object> valueMapper) enumValue(@NonNull String annotation, @NonNull String member, Class<E> enumType, @Nullable Function<Object, Object> valueMapper) The value of the annotation as a Class.<E extends Enum<E>>
E[]enumValues(@NonNull Class<? extends Annotation> annotation, @NonNull String member, Class<E> enumType, @Nullable Function<Object, Object> valueMapper) <E extends Enum<E>>
E[]enumValues(@NonNull String annotation, @NonNull String member, Class<E> enumType, @Nullable Function<Object, Object> valueMapper) <E extends Enum<E>>
E[]enumValues(Class<? extends Annotation> annotation, String member, Class<E> enumType) The enum values for the given annotation.<E extends Enum<E>>
E[]enumValues(String annotation, String member, Class<E> enumType) The enum values for the given annotation.<T extends Annotation>
@NonNull Optional<AnnotationValue<T>>findAnnotation(@NonNull String annotation) Find anAnnotationValuefor the given annotation name.<T extends Annotation>
@NonNull Optional<AnnotationValue<T>>findDeclaredAnnotation(@NonNull String annotation) Get all values for the given annotation that are directly declared on the annotated element.findRepeatableAnnotation(Class<? extends Annotation> annotation) Find repeatable annotation container.findRepeatableAnnotation(String annotation) Find repeatable annotation container.All the annotation names this metadata declares.getAnnotationNamesByStereotype(@Nullable String stereotype) Resolve all annotation names that feature the given stereotype.Optional<Class<? extends Annotation>>getAnnotationType(@NonNull String name) Gets the type for a given annotation if it is present on the classpath.Optional<Class<? extends Annotation>>getAnnotationType(@NonNull String name, @NonNull ClassLoader classLoader) Gets the type for a given annotation if it is present on the classpath.<T extends Annotation>
List<AnnotationValue<T>>getAnnotationValuesByName(String annotationType) Gets all the annotation values by the given repeatable type name.<T extends Annotation>
List<AnnotationValue<T>>getAnnotationValuesByStereotype(String stereotype) Resolve all annotation values that feature the given stereotype.<T extends Annotation>
@NonNull List<AnnotationValue<T>>getAnnotationValuesByType(@NonNull Class<T> annotationType) Gets all the annotation values by the given repeatable type.All the declared annotation names this metadata declares.<T extends Annotation>
List<AnnotationValue<T>>getDeclaredAnnotationValuesByName(String annotationType) Gets only declared annotation values by the given repeatable type name.<T extends Annotation>
@NonNull List<AnnotationValue<T>>getDeclaredAnnotationValuesByType(@NonNull Class<T> annotationType) Gets only declared annotation values by the given repeatable type.Gets the declared metadata without inherited metdata.<T> Optional<T>getDefaultValue(@NonNull String annotation, @NonNull String member, @NonNull Argument<T> requiredType) Return the default value for the given annotation member.getDefaultValues(@NonNull String annotation) Return the default values for the given annotation name.getValue(@NonNull String annotation, @NonNull String member, @NonNull Argument<T> requiredType, @Nullable Function<Object, Object> valueMapper) <T> @NonNull OptionalValues<T>Get all values for the given annotation and type of the underlying values.booleanhasAnnotation(@Nullable String annotation) Checks whether this object has the given annotation on the object itself or inherited from a parent.booleanhasDeclaredAnnotation(@Nullable String annotation) Checks whether this object has the given annotation directly declared on the object.booleanhasDeclaredStereotype(@Nullable String annotation) Checks whether this object has the given annotation stereotype on the object itself and not inherited from a parentbooleanDoes the metadata contain any evaluated expressions like#{ T(java.lang.Math).random() }.booleanDoes the metadata contain any property expressions like${foo.bar}.booleanhasStereotype(@Nullable String annotation) Checks whether this object has the given annotation stereotype on the object itself or inherited from a parentintValue(@NonNull Class<? extends Annotation> annotation, @NonNull String member, @Nullable Function<Object, Object> valueMapper) The value as anOptionalIntfor the given annotation and member.intValue(@NonNull String annotation, @NonNull String member, @Nullable Function<Object, Object> valueMapper) intValue(Class<? extends Annotation> annotation, String member) The value as anOptionalIntfor the given annotation and member.booleanisEmpty()Is the annotation metadata empty.booleanisFalse(Class<? extends Annotation> annotation, String member) Returns whether the value of the given member is true.booleanisPresent(Class<? extends Annotation> annotation, String member) Returns whether the value of the given member is present.booleanisRepeatableAnnotation(Class<? extends Annotation> annotation) Is repeatable annotation?booleanisRepeatableAnnotation(String annotation) Is repeatable annotation?booleanisTrue(@NonNull Class<? extends Annotation> annotation, @NonNull String member, Function<Object, Object> valueMapper) booleanReturns whether the value of the given member is true.booleanisTrue(@NonNull String annotation, @NonNull String member, @Nullable Function<Object, Object> valueMapper) booleanisTrue(Class<? extends Annotation> annotation, String member) Returns whether the value of the given member is true.iterator()longValue(@NonNull Class<? extends Annotation> annotation, @NonNull String member, @Nullable Function<Object, Object> valueMapper) The value as anOptionalLongfor the given annotation and member.longValue(@NonNull String annotation, @NonNull String member, @Nullable Function<Object, Object> valueMapper) longValue(Class<? extends Annotation> annotation, String member) The value as anOptionalLongfor the given annotation and member.merge()Merges the hierarchy into oneMutableAnnotationMetadata.intsize()The size of the hierarchy.stringValue(@NonNull Class<? extends Annotation> annotation, @NonNull String member, Function<Object, Object> valueMapper) stringValue(@NonNull String annotation, @NonNull String member) The value as an optional string for the given annotation and member.stringValue(@NonNull String annotation, @NonNull String member, @Nullable Function<Object, Object> valueMapper) stringValue(Class<? extends Annotation> annotation, String member) The value as an optional string for the given annotation and member.stringValues(@NonNull Class<? extends Annotation> annotation, @NonNull String member) The values as string array for the given annotation and member.stringValues(@NonNull Class<? extends Annotation> annotation, @NonNull String member, Function<Object, Object> valueMapper) stringValues(@NonNull String annotation, @NonNull String member) The values as string array for the given annotation and member.String[]<T extends Annotation>
Tsynthesize(@NonNull Class<T> annotationClass) Synthesizes a new annotation from the metadata for the given annotation type.<T extends Annotation>
Tsynthesize(@NonNull Class<T> annotationClass, @NonNull String sourceAnnotation) Synthesizes a new annotation for the given annotation type using the member values of the given source annotation.Synthesizes a new annotations from the metadata.<T extends Annotation>
T[]synthesizeAnnotationsByType(Class<T> annotationClass) Synthesizes a new annotations from the metadata for the given type.Synthesizes a new annotations from the metadata.<T extends Annotation>
TsynthesizeDeclared(@NonNull Class<T> annotationClass) Synthesizes a new annotation from the metadata for the given annotation type.<T extends Annotation>
TsynthesizeDeclared(@NonNull Class<T> annotationClass, @NonNull String sourceAnnotation) Synthesizes a new annotation declared for the given annotation type using the member values of the given source annotation.<T extends Annotation>
T[]synthesizeDeclaredAnnotationsByType(Class<T> annotationClass) Synthesizes a new annotations from the metadata for the given type.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.core.annotation.AnnotationMetadata
booleanValue, booleanValue, classValue, classValue, classValues, classValues, doubleValue, enumValue, enumValue, enumValues, enumValues, enumValuesSet, enumValuesSet, findAnnotation, findDeclaredAnnotation, getAnnotationNameByStereotype, getAnnotationNameByStereotype, getAnnotationNamesByStereotype, getAnnotationTypeByStereotype, getAnnotationTypeByStereotype, getAnnotationTypesByStereotype, getAnnotationTypesByStereotype, getAnnotationTypesByStereotype, getDeclaredAnnotationNameByStereotype, getDeclaredAnnotationNamesByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredStereotypeAnnotationNames, getDefaultValue, getDefaultValue, getDefaultValue, getStereotypeAnnotationNames, getTargetAnnotationMetadata, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValues, getValues, hasAnnotation, hasDeclaredAnnotation, hasDeclaredStereotype, hasDeclaredStereotype, hasDeclaredStereotype, hasSimpleAnnotation, hasSimpleDeclaredAnnotation, hasStereotype, hasStereotype, hasStereotype, hasStereotypeNonRepeating, intValue, isAnnotationPresent, isAnnotationPresent, isDeclaredAnnotationPresent, isDeclaredAnnotationPresent, isFalse, isPresent, stringValue, stringValue, stringValues, stringValuesMethods inherited from interface io.micronaut.core.annotation.AnnotationSource
getAnnotation, getAnnotation, getDeclaredAnnotation, getDeclaredAnnotationMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
EMPTY_HIERARCHY
Constant to represent an empty hierarchy.
-
-
Constructor Details
-
AnnotationMetadataHierarchy
Default constructor.- Parameters:
hierarchy- The annotation hierarchy
-
AnnotationMetadataHierarchy
@Internal public AnnotationMetadataHierarchy(boolean delegateDeclaredToAllElements, AnnotationMetadata... hierarchy) Default constructor.- Parameters:
hierarchy- The annotation hierarchydelegateDeclaredToAllElements- The delegate declared to all elements
-
-
Method Details
-
hasPropertyExpressions
public boolean hasPropertyExpressions()Description copied from interface:AnnotationMetadataDoes the metadata contain any property expressions like${foo.bar}. Note this by default returnstrueas previous versions of Micronaut must assume metadata is present. The compilation time this is computed in order to decide whether to instrument annotation metadata with environment specific logic.- Specified by:
hasPropertyExpressionsin interfaceAnnotationMetadata- Returns:
- True if property expressions are present
-
hasEvaluatedExpressions
public boolean hasEvaluatedExpressions()Description copied from interface:AnnotationMetadataDoes the metadata contain any evaluated expressions like#{ T(java.lang.Math).random() }.- Specified by:
hasEvaluatedExpressionsin interfaceAnnotationMetadata- Returns:
- True if evaluated expressions are present
-
getAnnotationType
Description copied from interface:AnnotationMetadataGets the type for a given annotation if it is present on the classpath. Subclasses can potentially override to provide optimized loading.- Specified by:
getAnnotationTypein interfaceAnnotationMetadata- Parameters:
name- The type name- Returns:
- The type if present
-
getAnnotationType
public Optional<Class<? extends Annotation>> getAnnotationType(@NonNull @NonNull String name, @NonNull @NonNull ClassLoader classLoader) Description copied from interface:AnnotationMetadataGets the type for a given annotation if it is present on the classpath. Subclasses can potentially override to provide optimized loading.- Specified by:
getAnnotationTypein interfaceAnnotationMetadata- Parameters:
name- The type nameclassLoader- The ClassLoader to load the type- Returns:
- The type if present
-
getDeclaredMetadata
Description copied from interface:AnnotationMetadataGets the declared metadata without inherited metdata.- Specified by:
getDeclaredMetadatain interfaceAnnotationMetadata- Returns:
- The metadata that is actually declared in the element
-
getRootMetadata
- Returns:
- The metadata that is actually declared in the element
-
createSibling
@NonNull public @NonNull AnnotationMetadata createSibling(@NonNull @NonNull AnnotationMetadata child) Create a new hierarchy instance from this metadata using this metadata's parents.- Parameters:
child- The child annotation metadata- Returns:
- A new sibling
-
synthesize
@Nullable public <T extends Annotation> T synthesize(@NonNull @NonNull Class<T> annotationClass, @NonNull @NonNull String sourceAnnotation) Description copied from interface:AnnotationSourceSynthesizes a new annotation for the given annotation type using the member values of the given source annotation.This method allows supporting synthesizing annotations that have been renamed, for example a
jakarta.inject.Namedannotation an be synthesized from the metadata of the ajakarta.inject.Namedannotation.- Specified by:
synthesizein interfaceAnnotationSource- Type Parameters:
T- The annotation generic type- Parameters:
annotationClass- The annotation classsourceAnnotation- The source annotation that provides the member values- Returns:
- The annotation or null if it doesn't exist
-
synthesizeAll
Description copied from interface:AnnotationSourceSynthesizes a new annotations from the metadata. This method works by creating a runtime proxy of the annotation interface and should be avoided in favour of direct use of the annotation metadata and only used for unique cases that require integrating third party libraries.- Specified by:
synthesizeAllin interfaceAnnotationSource- Returns:
- All the annotations
-
synthesizeDeclared
Description copied from interface:AnnotationSourceSynthesizes a new annotations from the metadata. This method works by creating a runtime proxy of the annotation interface and should be avoided in favour of direct use of the annotation metadata and only used for unique cases that require integrating third party libraries.- Specified by:
synthesizeDeclaredin interfaceAnnotationSource- Returns:
- All declared annotations
-
synthesizeAnnotationsByType
Description copied from interface:AnnotationSourceSynthesizes a new annotations from the metadata for the given type. This method works by creating a runtime proxy of the annotation interface and should be avoided in favour of direct use of the annotation metadata and only used for unique cases that require integrating third party libraries.- Specified by:
synthesizeAnnotationsByTypein interfaceAnnotationSource- Type Parameters:
T- The annotation generic type- Parameters:
annotationClass- The annotation type- Returns:
- All annotations by the given type
-
synthesizeDeclaredAnnotationsByType
Description copied from interface:AnnotationSourceSynthesizes a new annotations from the metadata for the given type. This method works by creating a runtime proxy of the annotation interface and should be avoided in favour of direct use of the annotation metadata and only used for unique cases that require integrating third party libraries.- Specified by:
synthesizeDeclaredAnnotationsByTypein interfaceAnnotationSource- Type Parameters:
T- The annotation generic type- Parameters:
annotationClass- The annotation type- Returns:
- Declared annotations by the given type
-
synthesizeDeclared
@Nullable public <T extends Annotation> T synthesizeDeclared(@NonNull @NonNull Class<T> annotationClass, @NonNull @NonNull String sourceAnnotation) Description copied from interface:AnnotationSourceSynthesizes a new annotation declared for the given annotation type using the member values of the given source annotation.This method allows supporting synthesizing annotations that have been renamed, for example a
jakarta.inject.Namedannotation an be synthesized from the metadata of the ajakarta.inject.Namedannotation.- Specified by:
synthesizeDeclaredin interfaceAnnotationSource- Type Parameters:
T- The annotation generic type- Parameters:
annotationClass- The annotation classsourceAnnotation- The source annotation that provides the member values- Returns:
- The annotation or null if it doesn't exist
-
synthesize
Description copied from interface:AnnotationSourceSynthesizes a new annotation from the metadata for the given annotation type. This method works by creating a runtime proxy of the annotation interface and should be avoided in favour of direct use of the annotation metadata and only used for unique cases that require integrating third party libraries.- Specified by:
synthesizein interfaceAnnotationSource- Type Parameters:
T- The annotation generic type- Parameters:
annotationClass- The annotation class- Returns:
- The annotation or null if it doesn't exist
-
synthesizeDeclared
@Nullable public <T extends Annotation> T synthesizeDeclared(@NonNull @NonNull Class<T> annotationClass) Description copied from interface:AnnotationSourceSynthesizes a new annotation from the metadata for the given annotation type. This method works by creating a runtime proxy of the annotation interface and should be avoided in favour of direct use of the annotation metadata and only used for unique cases that require integrating third party libraries.This method ignores inherited annotations. (Returns null if no annotations are directly present on this element.)
- Specified by:
synthesizeDeclaredin interfaceAnnotationSource- Type Parameters:
T- The annotation generic type- Parameters:
annotationClass- The annotation class- Returns:
- The annotation or null if it doesn't exist
-
findAnnotation
@NonNull public <T extends Annotation> @NonNull Optional<AnnotationValue<T>> findAnnotation(@NonNull @NonNull String annotation) Description copied from interface:AnnotationSourceFind anAnnotationValuefor the given annotation name.- Specified by:
findAnnotationin interfaceAnnotationSource- Type Parameters:
T- The annotation type- Parameters:
annotation- The annotation name- Returns:
- A
AnnotationValueinstance
-
findDeclaredAnnotation
@NonNull public <T extends Annotation> @NonNull Optional<AnnotationValue<T>> findDeclaredAnnotation(@NonNull @NonNull String annotation) Description copied from interface:AnnotationSourceGet all values for the given annotation that are directly declared on the annotated element.- Specified by:
findDeclaredAnnotationin interfaceAnnotationSource- Type Parameters:
T- The annotation type- Parameters:
annotation- The annotation name- Returns:
- A
AnnotationValueinstance
-
doubleValue
@NonNull public @NonNull OptionalDouble doubleValue(@NonNull @NonNull Class<? extends Annotation> annotation, @NonNull @NonNull String member) Description copied from interface:AnnotationMetadataThe value as anOptionalDoublefor the given annotation and member.- Specified by:
doubleValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- THe
OptionalDoublevalue
-
stringValues
@NonNull public @NonNull String[] stringValues(@NonNull @NonNull Class<? extends Annotation> annotation, @NonNull @NonNull String member) Description copied from interface:AnnotationMetadataThe values as string array for the given annotation and member.- Specified by:
stringValuesin interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- The string values if it is present
-
stringValues
@NonNull public @NonNull String[] stringValues(@NonNull @NonNull String annotation, @NonNull @NonNull String member) Description copied from interface:AnnotationMetadataThe values as string array for the given annotation and member.- Specified by:
stringValuesin interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- The string values if it is present
-
booleanValue
public Optional<Boolean> booleanValue(@NonNull @NonNull String annotation, @NonNull @NonNull String member) Description copied from interface:AnnotationMetadataThe value as an optional boolean for the given annotation and member.- Specified by:
booleanValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- The string value if it is present
-
isTrue
Description copied from interface:AnnotationMetadataReturns whether the value of the given member is true.- Specified by:
isTruein interfaceAnnotationMetadata- Parameters:
annotation- The annotation classmember- The annotation member- Returns:
- True if the value is true
-
longValue
Description copied from interface:AnnotationMetadataThe value as anOptionalLongfor the given annotation and member.- Specified by:
longValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- THe
OptionalLongvalue
-
stringValue
public Optional<String> stringValue(@NonNull @NonNull String annotation, @NonNull @NonNull String member) Description copied from interface:AnnotationMetadataThe value as an optional string for the given annotation and member.- Specified by:
stringValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- The string value if it is present
-
intValue
Description copied from interface:AnnotationMetadataThe value as anOptionalIntfor the given annotation and member.- Specified by:
intValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- THe
OptionalIntvalue
-
doubleValue
@NonNull public @NonNull OptionalDouble doubleValue(@NonNull @NonNull String annotation, @NonNull @NonNull String member) Description copied from interface:AnnotationMetadataThe value as anOptionalDoublefor the given annotation and member.- Specified by:
doubleValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- THe
OptionalDoublevalue
-
enumValue
public <E extends Enum<E>> Optional<E> enumValue(@NonNull @NonNull Class<? extends Annotation> annotation, @NonNull @NonNull String member, Class<E> enumType) Description copied from interface:AnnotationMetadataThe value of the annotation as a Class.- Specified by:
enumValuein interfaceAnnotationMetadata- Type Parameters:
E- The enum type- Parameters:
annotation- The annotationmember- The annotation memberenumType- The enum type- Returns:
- An
Optionalclass
-
classValues
@NonNull public <T> @NonNull Class<T>[] classValues(@NonNull @NonNull String annotation, @NonNull @NonNull String member) Description copied from interface:AnnotationMetadataThe value of the annotation as a Class.- Specified by:
classValuesin interfaceAnnotationMetadata- Type Parameters:
T- The type of the class- Parameters:
annotation- The annotationmember- The annotation member- Returns:
- An
Optionalclass
-
classValue
public Optional<Class> classValue(@NonNull @NonNull String annotation, @NonNull @NonNull String member) Description copied from interface:AnnotationMetadataThe value of the annotation as a Class.- Specified by:
classValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The annotation member- Returns:
- An
Optionalclass
-
getAnnotationNamesByStereotype
@NonNull public @NonNull List<String> getAnnotationNamesByStereotype(@Nullable @Nullable String stereotype) Description copied from interface:AnnotationMetadataResolve all annotation names that feature the given stereotype.- Specified by:
getAnnotationNamesByStereotypein interfaceAnnotationMetadata- Parameters:
stereotype- The annotation names- Returns:
- A set of annotation names
-
getAnnotationValuesByStereotype
public <T extends Annotation> List<AnnotationValue<T>> getAnnotationValuesByStereotype(String stereotype) Description copied from interface:AnnotationMetadataResolve all annotation values that feature the given stereotype.- Specified by:
getAnnotationValuesByStereotypein interfaceAnnotationMetadata- Type Parameters:
T- The annotation type- Parameters:
stereotype- The annotation names- Returns:
- A set of annotation names
-
getDeclaredAnnotationNames
Description copied from interface:AnnotationMetadataAll the declared annotation names this metadata declares.- Specified by:
getDeclaredAnnotationNamesin interfaceAnnotationMetadata- Returns:
- All the declared annotation names this metadata declares
-
getAnnotationNames
Description copied from interface:AnnotationMetadataAll the annotation names this metadata declares.- Specified by:
getAnnotationNamesin interfaceAnnotationMetadata- Returns:
- All the annotation names this metadata declares
-
getValues
@NonNull public <T> @NonNull OptionalValues<T> getValues(@NonNull @NonNull String annotation, @NonNull @NonNull Class<T> valueType) Description copied from interface:AnnotationMetadataGet all values for the given annotation and type of the underlying values.- Specified by:
getValuesin interfaceAnnotationMetadata- Type Parameters:
T- Generic type- Parameters:
annotation- The annotation namevalueType- valueType- Returns:
- The
OptionalValues
-
getDefaultValue
public <T> Optional<T> getDefaultValue(@NonNull @NonNull String annotation, @NonNull @NonNull String member, @NonNull @NonNull Argument<T> requiredType) Description copied from interface:AnnotationMetadataReturn the default value for the given annotation member.- Specified by:
getDefaultValuein interfaceAnnotationMetadata- Type Parameters:
T- The required generic type- Parameters:
annotation- The annotationmember- The memberrequiredType- The required type- Returns:
- An optional value
-
getAnnotationValuesByType
@NonNull public <T extends Annotation> @NonNull List<AnnotationValue<T>> getAnnotationValuesByType(@NonNull @NonNull Class<T> annotationType) Description copied from interface:AnnotationMetadataGets all the annotation values by the given repeatable type.- Specified by:
getAnnotationValuesByTypein interfaceAnnotationMetadata- Type Parameters:
T- The annotation type- Parameters:
annotationType- The annotation type- Returns:
- A list of values
-
getAnnotationValuesByName
public <T extends Annotation> List<AnnotationValue<T>> getAnnotationValuesByName(String annotationType) Description copied from interface:AnnotationMetadataGets all the annotation values by the given repeatable type name.- Specified by:
getAnnotationValuesByNamein interfaceAnnotationMetadata- Type Parameters:
T- The annotation type- Parameters:
annotationType- The annotation type- Returns:
- A list of values
-
getDeclaredAnnotationValuesByType
@NonNull public <T extends Annotation> @NonNull List<AnnotationValue<T>> getDeclaredAnnotationValuesByType(@NonNull @NonNull Class<T> annotationType) Description copied from interface:AnnotationMetadataGets only declared annotation values by the given repeatable type.- Specified by:
getDeclaredAnnotationValuesByTypein interfaceAnnotationMetadata- Type Parameters:
T- The annotation type- Parameters:
annotationType- The annotation type- Returns:
- A list of values
-
getDeclaredAnnotationValuesByName
public <T extends Annotation> List<AnnotationValue<T>> getDeclaredAnnotationValuesByName(String annotationType) Description copied from interface:AnnotationMetadataGets only declared annotation values by the given repeatable type name.- Specified by:
getDeclaredAnnotationValuesByNamein interfaceAnnotationMetadata- Type Parameters:
T- The annotation type- Parameters:
annotationType- The annotation type- Returns:
- A list of values
-
hasDeclaredAnnotation
Description copied from interface:AnnotationMetadataChecks whether this object has the given annotation directly declared on the object.- Specified by:
hasDeclaredAnnotationin interfaceAnnotationMetadata- Parameters:
annotation- The annotation- Returns:
- True if the annotation is present
-
hasAnnotation
Description copied from interface:AnnotationMetadataChecks whether this object has the given annotation on the object itself or inherited from a parent.- Specified by:
hasAnnotationin interfaceAnnotationMetadata- Parameters:
annotation- The annotation- Returns:
- True if the annotation is present
-
hasStereotype
Description copied from interface:AnnotationMetadataChecks whether this object has the given annotation stereotype on the object itself or inherited from a parent
.An annotation stereotype is a meta annotation potentially applied to another annotation
- Specified by:
hasStereotypein interfaceAnnotationMetadata- Parameters:
annotation- The annotation- Returns:
- True if the annotation is present
-
hasDeclaredStereotype
Description copied from interface:AnnotationMetadataChecks whether this object has the given annotation stereotype on the object itself and not inherited from a parent
.An annotation stereotype is a meta annotation potentially applied to another annotation
- Specified by:
hasDeclaredStereotypein interfaceAnnotationMetadata- Parameters:
annotation- The annotation- Returns:
- True if the annotation is present
-
enumValue
public <E extends Enum<E>> Optional<E> enumValue(String annotation, String member, Class<E> enumType) Description copied from interface:AnnotationMetadataThe value of the annotation as a Class.- Specified by:
enumValuein interfaceAnnotationMetadata- Type Parameters:
E- The enum type- Parameters:
annotation- The annotationmember- The annotation memberenumType- The enum type- Returns:
- An
Optionalclass
-
enumValues
Description copied from interface:AnnotationMetadataThe enum values for the given annotation.- Specified by:
enumValuesin interfaceAnnotationMetadata- Type Parameters:
E- The enum type- Parameters:
annotation- The annotationmember- The annotation memberenumType- The enum type- Returns:
- An array of enum values
-
intValue
Description copied from interface:AnnotationMetadataThe value as anOptionalIntfor the given annotation and member.- Specified by:
intValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- THe
OptionalIntvalue
-
isFalse
Description copied from interface:AnnotationMetadataReturns whether the value of the given member is true.- Specified by:
isFalsein interfaceAnnotationMetadata- Parameters:
annotation- The annotation classmember- The annotation member- Returns:
- True if the value is true
-
getDefaultValues
@NonNull public @NonNull Map<CharSequence,Object> getDefaultValues(@NonNull @NonNull String annotation) Description copied from interface:AnnotationMetadataReturn the default values for the given annotation name.- Specified by:
getDefaultValuesin interfaceAnnotationMetadata- Parameters:
annotation- The annotation name- Returns:
- The default values
-
enumValue
-
enumValue
-
enumValues
-
enumValues
-
classValue
-
classValue
-
intValue
-
booleanValue
-
booleanValue
-
longValue
-
longValue
-
intValue
-
longValue
Description copied from interface:AnnotationMetadataThe value as anOptionalLongfor the given annotation and member.- Specified by:
longValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- THe
OptionalLongvalue
-
enumValues
public <E extends Enum<E>> E[] enumValues(Class<? extends Annotation> annotation, String member, Class<E> enumType) Description copied from interface:AnnotationMetadataThe enum values for the given annotation.- Specified by:
enumValuesin interfaceAnnotationMetadata- Type Parameters:
E- The enum type- Parameters:
annotation- The annotationmember- The annotation memberenumType- The enum type- Returns:
- An array of enum values
-
classValues
Description copied from interface:AnnotationMetadataThe value of the annotation as a Class.- Specified by:
classValuesin interfaceAnnotationMetadata- Type Parameters:
T- The type of the class- Parameters:
annotation- The annotationmember- The annotation member- Returns:
- An
Optionalclass
-
classValue
Description copied from interface:AnnotationMetadataThe value of the annotation as a Class.- Specified by:
classValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The annotation member- Returns:
- An
Optionalclass
-
stringValue
Description copied from interface:AnnotationMetadataThe value as an optional string for the given annotation and member.- Specified by:
stringValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- The string value if it is present
-
booleanValue
Description copied from interface:AnnotationMetadataThe value as an optional boolean for the given annotation and member.- Specified by:
booleanValuein interfaceAnnotationMetadata- Parameters:
annotation- The annotationmember- The member- Returns:
- The string value if it is present
-
isTrue
Description copied from interface:AnnotationMetadataReturns whether the value of the given member is true.- Specified by:
isTruein interfaceAnnotationMetadata- Parameters:
annotation- The annotation classmember- The annotation member- Returns:
- True if the value is true
-
isPresent
Description copied from interface:AnnotationMetadataReturns whether the value of the given member is present.- Specified by:
isPresentin interfaceAnnotationMetadata- Parameters:
annotation- The annotation classmember- The annotation member- Returns:
- True if the value is true
-
stringValue
-
stringValues
-
stringValues
-
stringValue
-
isTrue
-
isTrue
-
doubleValue
-
doubleValue
-
getValue
-
iterator
- Specified by:
iteratorin interfaceIterable<AnnotationMetadata>
-
isEmpty
public boolean isEmpty()Description copied from interface:AnnotationMetadataIs the annotation metadata empty.- Specified by:
isEmptyin interfaceAnnotationMetadata- Returns:
- True if it is
-
isRepeatableAnnotation
Description copied from interface:AnnotationMetadataIs repeatable annotation?- Specified by:
isRepeatableAnnotationin interfaceAnnotationMetadata- Parameters:
annotation- The annotation- Returns:
- true if repeatable
-
isRepeatableAnnotation
Description copied from interface:AnnotationMetadataIs repeatable annotation?- Specified by:
isRepeatableAnnotationin interfaceAnnotationMetadata- Parameters:
annotation- The annotation- Returns:
- true if repeatable
-
findRepeatableAnnotation
Description copied from interface:AnnotationMetadataFind repeatable annotation container.- Specified by:
findRepeatableAnnotationin interfaceAnnotationMetadata- Parameters:
annotation- The annotation- Returns:
- optional repeatable annotation container
-
findRepeatableAnnotation
Description copied from interface:AnnotationMetadataFind repeatable annotation container.- Specified by:
findRepeatableAnnotationin interfaceAnnotationMetadata- Parameters:
annotation- The annotation- Returns:
- optional repeatable annotation container
-
merge
Merges the hierarchy into oneMutableAnnotationMetadata.- Returns:
- merged metadata
- Since:
- 4.0.0
-
copyAnnotationMetadata
Description copied from interface:AnnotationMetadataMakes a copy of the annotation or returns this.- Specified by:
copyAnnotationMetadatain interfaceAnnotationMetadata- Returns:
- the copy
-
size
public int size()The size of the hierarchy.- Returns:
- The size
- Since:
- 4.0.0
-