Interface AnnotationValue<T,S>
-
- Type Parameters:
T- The represented value's unloaded type.S- The represented value's loaded type.
- All Known Implementing Classes:
AnnotationValue.AbstractBase,AnnotationValue.ForAnnotationDescription,AnnotationValue.ForConstant,AnnotationValue.ForDescriptionArray,AnnotationValue.ForEnumerationDescription,AnnotationValue.ForEnumerationDescription.WithUnknownConstant,AnnotationValue.ForIncompatibleType,AnnotationValue.ForMismatchedType,AnnotationValue.ForMissingType,AnnotationValue.ForMissingValue,AnnotationValue.ForTypeDescription,TypePool.Default.LazyTypeDescription.LazyAnnotationValue,TypePool.Default.LazyTypeDescription.LazyAnnotationValue.ForAnnotationValue,TypePool.Default.LazyTypeDescription.LazyAnnotationValue.ForArray,TypePool.Default.LazyTypeDescription.LazyAnnotationValue.ForEnumerationValue,TypePool.Default.LazyTypeDescription.LazyAnnotationValue.ForMismatchedType,TypePool.Default.LazyTypeDescription.LazyAnnotationValue.ForTypeValue
public interface AnnotationValue<T,S>Representation of an unloaded annotation value where all values represent either:- Primitive values (as their wrappers),
Strings or arrays of primitive types or strings. - A
TypeDescriptionor an array of such a descriptions. - An
EnumerationDescriptionor an array of such a description. - An
AnnotationDescriptionor an array of such a description.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classAnnotationValue.AbstractBase<U,V>An abstract base implementation of an unloaded annotation value.static classAnnotationValue.ForAnnotationDescription<U extends java.lang.annotation.Annotation>A description of anAnnotationas a value of another annotation.static classAnnotationValue.ForConstant<U>Represents a primitive value, aStringor an array of the latter types.static classAnnotationValue.ForDescriptionArray<U,V>Describes a complex array that is the value of an annotation.static classAnnotationValue.ForEnumerationDescription<U extends java.lang.Enum<U>>A description of anEnumas a value of an annotation.static classAnnotationValue.ForIncompatibleType<U,V>Represents an annotation value where its declared type does not fulfil an expectation.static classAnnotationValue.ForMismatchedType<U,V>Describes an annotation value that does not match the annotation' type for a property.static classAnnotationValue.ForMissingType<U,V>An annotation value for a type that could not be loaded.static classAnnotationValue.ForMissingValue<U,V>Represents a missing annotation property which is not represented by a default value.static classAnnotationValue.ForTypeDescription<U extends java.lang.Class<U>>A description of aClassas a value of an annotation.static interfaceAnnotationValue.Loaded<U>A loaded variant of anAnnotationValue.static classAnnotationValue.RenderingDispatcherA rendering dispatcher is responsible for resolving annotation values toStringrepresentations.static classAnnotationValue.SortRepresents the sort of anAnnotationValue.static classAnnotationValue.StateRepresents the state of anAnnotationValue.
-
Field Summary
Fields Modifier and Type Field Description static AnnotationValue<?,?>UNDEFINEDAn undefined annotation value.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description AnnotationValue<T,S>filter(MethodDescription.InDefinedShape property)Filters this annotation value as a valid value of the provided property.AnnotationValue<T,S>filter(MethodDescription.InDefinedShape property, TypeDefinition typeDefinition)Filters this annotation value as a valid value of the provided property.AnnotationValue.SortgetSort()Returns the property type of the annotation value.AnnotationValue.StategetState()Returns the state of the represented annotation value.AnnotationValue.Loaded<S>load(java.lang.ClassLoader classLoader)Returns the loaded value of this annotation.Tresolve()Resolves the unloaded value of this annotation.<W> Wresolve(java.lang.Class<? extends W> type)Resolves the unloaded value of this annotation.
-
-
-
Field Detail
-
UNDEFINED
@AlwaysNull static final AnnotationValue<?,?> UNDEFINED
An undefined annotation value.
-
-
Method Detail
-
getState
AnnotationValue.State getState()
Returns the state of the represented annotation value.- Returns:
- The state represented by this instance.
-
getSort
AnnotationValue.Sort getSort()
Returns the property type of the annotation value.- Returns:
- The property type of the annotation value.
-
filter
AnnotationValue<T,S> filter(MethodDescription.InDefinedShape property)
Filters this annotation value as a valid value of the provided property.- Parameters:
property- The property to filter against.- Returns:
- This annotation value or a new annotation value that describes why this value is not a valid value for the supplied property.
-
filter
AnnotationValue<T,S> filter(MethodDescription.InDefinedShape property, TypeDefinition typeDefinition)
Filters this annotation value as a valid value of the provided property.- Parameters:
property- The property to filter against.typeDefinition- The expected type.- Returns:
- This annotation value or a new annotation value that describes why this value is not a valid value for the supplied property.
-
resolve
T resolve()
Resolves the unloaded value of this annotation. The return value of this method is not defined if this annotation value is invalid.- Returns:
- The unloaded value of this annotation.
-
resolve
<W> W resolve(java.lang.Class<? extends W> type)
Resolves the unloaded value of this annotation. The return value of this method is not defined if this annotation value is invalid.- Type Parameters:
W- The annotation value's unloaded type.- Parameters:
type- The annotation value's unloaded type.- Returns:
- The unloaded value of this annotation.
-
load
AnnotationValue.Loaded<S> load(@MaybeNull java.lang.ClassLoader classLoader)
Returns the loaded value of this annotation.- Parameters:
classLoader- The class loader for loading this value ornullfor using the boot loader.- Returns:
- The loaded value of this annotation.
-
-