Class ResolvableAnnotationValueVisitor
- java.lang.Object
-
- javax.lang.model.util.AbstractAnnotationValueVisitor6<R,P>
-
- javax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
- io.microsphere.annotation.processor.model.util.ResolvableAnnotationValueVisitor
-
- All Implemented Interfaces:
javax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
public class ResolvableAnnotationValueVisitor extends javax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
A visitor for resolving annotation values into their corresponding runtime representations.This class extends
SimpleAnnotationValueVisitor6
to process annotation values and convert them into appropriate Java objects such as primitives, strings, enums, classes, annotations, and arrays.Example Usage
// Create an instance with default settings ResolvableAnnotationValueVisitor visitor = new ResolvableAnnotationValueVisitor(); // Visit an annotation value AnnotationValue annotationValue = ...; // Obtain from an annotation mirror Object resolvedValue = annotationValue.accept(visitor, executableElement);
Custom behavior examples
// Create an instance that represents Class values as strings ResolvableAnnotationValueVisitor visitor = new ResolvableAnnotationValueVisitor(true); // Create an instance that handles nested annotations as maps ResolvableAnnotationValueVisitor visitor = new ResolvableAnnotationValueVisitor(false, true);
- Since:
- 1.0.0
- Author:
- Mercy
- See Also:
AnnotationValueVisitor
-
-
Constructor Summary
Constructors Constructor Description ResolvableAnnotationValueVisitor()
ResolvableAnnotationValueVisitor(boolean classValuesAsString)
ResolvableAnnotationValueVisitor(boolean classValuesAsString, boolean nestedAnnotationsAsMap)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
visitAnnotation(javax.lang.model.element.AnnotationMirror a, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitArray(java.util.List<? extends javax.lang.model.element.AnnotationValue> values, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitBoolean(boolean b, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitByte(byte b, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitChar(char c, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitDouble(double d, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitEnumConstant(javax.lang.model.element.VariableElement c, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitFloat(float f, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitInt(int i, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitLong(long i, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitShort(short s, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitString(java.lang.String s, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitType(javax.lang.model.type.TypeMirror t, javax.lang.model.element.ExecutableElement attributeMethod)
java.lang.Object
visitUnknown(javax.lang.model.element.AnnotationValue av, javax.lang.model.element.ExecutableElement attributeMethod)
-
-
-
Constructor Detail
-
ResolvableAnnotationValueVisitor
public ResolvableAnnotationValueVisitor()
-
ResolvableAnnotationValueVisitor
public ResolvableAnnotationValueVisitor(boolean classValuesAsString)
-
ResolvableAnnotationValueVisitor
public ResolvableAnnotationValueVisitor(boolean classValuesAsString, boolean nestedAnnotationsAsMap)
-
-
Method Detail
-
visitBoolean
public java.lang.Object visitBoolean(boolean b, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitBoolean
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitBoolean
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitByte
public java.lang.Object visitByte(byte b, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitByte
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitByte
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitChar
public java.lang.Object visitChar(char c, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitChar
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitChar
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitDouble
public java.lang.Object visitDouble(double d, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitDouble
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitDouble
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitFloat
public java.lang.Object visitFloat(float f, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitFloat
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitFloat
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitInt
public java.lang.Object visitInt(int i, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitInt
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitInt
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitLong
public java.lang.Object visitLong(long i, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitLong
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitLong
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitShort
public java.lang.Object visitShort(short s, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitShort
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitShort
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitString
public java.lang.Object visitString(java.lang.String s, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitString
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitString
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitType
public java.lang.Object visitType(javax.lang.model.type.TypeMirror t, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitType
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitType
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitEnumConstant
public java.lang.Object visitEnumConstant(javax.lang.model.element.VariableElement c, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitEnumConstant
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitEnumConstant
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitAnnotation
public java.lang.Object visitAnnotation(javax.lang.model.element.AnnotationMirror a, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitAnnotation
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitAnnotation
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitArray
public java.lang.Object visitArray(java.util.List<? extends javax.lang.model.element.AnnotationValue> values, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitArray
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitArray
in classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
visitUnknown
public java.lang.Object visitUnknown(javax.lang.model.element.AnnotationValue av, javax.lang.model.element.ExecutableElement attributeMethod)
- Specified by:
visitUnknown
in interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>
- Overrides:
visitUnknown
in classjavax.lang.model.util.AbstractAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
-