Interface AnnotationValue<T,S>
-
- Type Parameters:
T
- The represented value's unloaded type.S
- The represented value's loaded type.
- All Known Implementing Classes:
AnnotationDescription.AnnotationInvocationHandler.MissingValue
,AnnotationValue.AbstractBase
,AnnotationValue.ForAnnotationDescription
,AnnotationValue.ForConstant
,AnnotationValue.ForDescriptionArray
,AnnotationValue.ForEnumerationDescription
,AnnotationValue.ForTypeDescription
,TypePool.AbstractBase.RawAnnotationValue
,TypePool.AbstractBase.RawDescriptionArray
,TypePool.AbstractBase.RawEnumerationValue
,TypePool.AbstractBase.RawTypeValue
public interface AnnotationValue<T,S>
Representation of an unloaded annotation value where all values represent either:- Primitive values (as their wrappers),
String
s or arrays of primitive types or strings. - A
TypeDescription
or an array of such a descriptions. - An
EnumerationDescription
or an array of such a description. - An
AnnotationDescription
or an array of such a description.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
AnnotationValue.AbstractBase<U,V>
An abstract base implementation of an unloaded annotation value.static class
AnnotationValue.ForAnnotationDescription<U extends java.lang.annotation.Annotation>
A description of anAnnotation
as a value of another annotation.static class
AnnotationValue.ForConstant<U>
Represents a primitive value, aString
or an array of the latter types.static class
AnnotationValue.ForDescriptionArray<U,V>
Describes a complex array that is the value of an annotation.static class
AnnotationValue.ForEnumerationDescription<U extends java.lang.Enum<U>>
A description of anEnum
as a value of an annotation.static class
AnnotationValue.ForTypeDescription<U extends java.lang.Class<U>>
A description of aClass
as a value of an annotation.static interface
AnnotationValue.Loaded<U>
A loaded variant of anAnnotationValue
.static class
AnnotationValue.RenderingDispatcher
A rendering dispatcher is responsible for resolving annotation values toString
representations.
-
Field Summary
Fields Modifier and Type Field Description static AnnotationValue<?,?>
UNDEFINED
An undefined annotation value.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description AnnotationValue.Loaded<S>
load(java.lang.ClassLoader classLoader)
Returns the loaded value of this annotation.AnnotationValue.Loaded<S>
loadSilent(java.lang.ClassLoader classLoader)
Returns the loaded value of this annotation without throwing a checked exception.T
resolve()
Resolves the unloaded value of this annotation.<W> W
resolve(java.lang.Class<? extends W> type)
Resolves the unloaded value of this annotation.
-
-
-
Field Detail
-
UNDEFINED
static final AnnotationValue<?,?> UNDEFINED
An undefined annotation value.
-
-
Method Detail
-
resolve
T resolve()
Resolves the unloaded value of this annotation.- Returns:
- The unloaded value of this annotation.
-
resolve
<W> W resolve(java.lang.Class<? extends W> type)
Resolves the unloaded value of this annotation.- 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(java.lang.ClassLoader classLoader) throws java.lang.ClassNotFoundException
Returns the loaded value of this annotation.- Parameters:
classLoader
- The class loader for loading this value.- Returns:
- The loaded value of this annotation.
- Throws:
java.lang.ClassNotFoundException
- If a type that represents a loaded value cannot be found.
-
loadSilent
AnnotationValue.Loaded<S> loadSilent(java.lang.ClassLoader classLoader)
Returns the loaded value of this annotation without throwing a checked exception.- Parameters:
classLoader
- The class loader for loading this value.- Returns:
- The loaded value of this annotation.
-
-