Class JSONAnnotationValueVisitor
- java.lang.Object
-
- javax.lang.model.util.AbstractAnnotationValueVisitor6<R,P>
-
- javax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
- io.microsphere.annotation.processor.model.util.JSONAnnotationValueVisitor
-
- All Implemented Interfaces:
javax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
public class JSONAnnotationValueVisitor extends javax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>A visitor implementation for convertingAnnotationValueobjects into JSON-formatted strings. This class extendsSimpleAnnotationValueVisitor6and is designed to work with Java annotation processing tools to generate JSON representations of annotation values.Example Usage
// Example 1: Visiting a simple annotation value AnnotationValue value = ...; // e.g., a String, int, or boolean value ExecutableElement method = ...; // the method corresponding to the annotation attribute StringBuilder jsonBuilder = new StringBuilder(); JSONAnnotationValueVisitor visitor = new JSONAnnotationValueVisitor(jsonBuilder); visitor.visit(value, method); // Result: appends JSON key-value pair to jsonBuilder // Example 2: Visiting an array annotation value List<? extends AnnotationValue> arrayValues = ...; // list of annotation values visitor.visitArray(arrayValues, method); // Result: appends JSON array to jsonBuilder // Example 3: Visiting a nested annotation AnnotationMirror annotationMirror = ...; visitor.visitAnnotation(annotationMirror, method); // Result: appends JSON object to jsonBuilderThis visitor is typically used during annotation processing to serialize annotation values into a structured JSON format, useful for configuration or metadata generation purposes.
- Since:
- 1.0.0
- Author:
- Mercy
- See Also:
SimpleAnnotationValueVisitor6
-
-
Constructor Summary
Constructors Constructor Description JSONAnnotationValueVisitor(java.lang.StringBuilder jsonBuilder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringBuilderdoAppend(javax.lang.model.element.ExecutableElement attributeMethod, java.lang.StringBuilder value)java.lang.StringBuildervisitAnnotation(javax.lang.model.element.AnnotationMirror value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitArray(java.util.List<? extends javax.lang.model.element.AnnotationValue> values, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitBoolean(boolean value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitByte(byte value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitChar(char value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitDouble(double value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitEnumConstant(javax.lang.model.element.VariableElement value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitFloat(float value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitInt(int value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitLong(long value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitShort(short value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitString(java.lang.String value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitType(javax.lang.model.type.TypeMirror value, javax.lang.model.element.ExecutableElement attributeMethod)java.lang.StringBuildervisitUnknown(javax.lang.model.element.AnnotationValue annotationValue, javax.lang.model.element.ExecutableElement attributeMethod)
-
-
-
Method Detail
-
visitBoolean
public java.lang.StringBuilder visitBoolean(boolean value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitBooleanin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitBooleanin classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitByte
public java.lang.StringBuilder visitByte(byte value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitBytein interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitBytein classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitChar
public java.lang.StringBuilder visitChar(char value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitCharin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitCharin classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitDouble
public java.lang.StringBuilder visitDouble(double value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitDoublein interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitDoublein classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitFloat
public java.lang.StringBuilder visitFloat(float value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitFloatin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitFloatin classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitInt
public java.lang.StringBuilder visitInt(int value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitIntin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitIntin classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitLong
public java.lang.StringBuilder visitLong(long value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitLongin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitLongin classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitShort
public java.lang.StringBuilder visitShort(short value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitShortin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitShortin classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitString
public java.lang.StringBuilder visitString(java.lang.String value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitStringin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitStringin classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitType
public java.lang.StringBuilder visitType(javax.lang.model.type.TypeMirror value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitTypein interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitTypein classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitEnumConstant
public java.lang.StringBuilder visitEnumConstant(javax.lang.model.element.VariableElement value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitEnumConstantin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitEnumConstantin classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitAnnotation
public java.lang.StringBuilder visitAnnotation(javax.lang.model.element.AnnotationMirror value, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitAnnotationin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitAnnotationin classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitArray
public java.lang.StringBuilder 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.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitArrayin classjavax.lang.model.util.SimpleAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
visitUnknown
public java.lang.StringBuilder visitUnknown(javax.lang.model.element.AnnotationValue annotationValue, javax.lang.model.element.ExecutableElement attributeMethod)- Specified by:
visitUnknownin interfacejavax.lang.model.element.AnnotationValueVisitor<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>- Overrides:
visitUnknownin classjavax.lang.model.util.AbstractAnnotationValueVisitor6<java.lang.StringBuilder,javax.lang.model.element.ExecutableElement>
-
doAppend
protected java.lang.StringBuilder doAppend(javax.lang.model.element.ExecutableElement attributeMethod, java.lang.StringBuilder value)
-
-