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
SimpleAnnotationValueVisitor6to 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.ObjectvisitAnnotation(javax.lang.model.element.AnnotationMirror a, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitArray(java.util.List<? extends javax.lang.model.element.AnnotationValue> values, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitBoolean(boolean b, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitByte(byte b, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitChar(char c, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitDouble(double d, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitEnumConstant(javax.lang.model.element.VariableElement c, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitFloat(float f, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitInt(int i, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitLong(long i, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitShort(short s, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitString(java.lang.String s, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitType(javax.lang.model.type.TypeMirror t, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.ObjectvisitUnknown(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:
visitBooleanin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitBooleanin 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:
visitBytein interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitBytein 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:
visitCharin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitCharin 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:
visitDoublein interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitDoublein 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:
visitFloatin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitFloatin 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:
visitIntin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitIntin 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:
visitLongin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitLongin 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:
visitShortin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitShortin 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:
visitStringin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitStringin 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:
visitTypein interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitTypein 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:
visitEnumConstantin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitEnumConstantin 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:
visitAnnotationin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitAnnotationin 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:
visitArrayin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitArrayin 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:
visitUnknownin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.Object,javax.lang.model.element.ExecutableElement>- Overrides:
visitUnknownin classjavax.lang.model.util.AbstractAnnotationValueVisitor6<java.lang.Object,javax.lang.model.element.ExecutableElement>
-
-