Package io.micronaut.jsonschema.visitor
Class JsonSchemaVisitor
java.lang.Object
io.micronaut.jsonschema.visitor.JsonSchemaVisitor
- All Implemented Interfaces:
io.micronaut.core.order.Ordered,io.micronaut.core.util.Toggleable,io.micronaut.inject.visitor.TypeElementVisitor<JsonSchema,Object>
@Internal
public final class JsonSchemaVisitor
extends Object
implements io.micronaut.inject.visitor.TypeElementVisitor<JsonSchema,Object>
A visitor for creating JSON schemas for beans.
The bean must have a
JsonSchema annotation.- Since:
- 1.0.0
- Author:
- Andriy Dmytruk
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.micronaut.inject.visitor.TypeElementVisitor
io.micronaut.inject.visitor.TypeElementVisitor.VisitorKind -
Field Summary
Fields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic SchemacreateSchema(io.micronaut.inject.ast.TypedElement element, io.micronaut.inject.visitor.VisitorContext visitorContext, JsonSchemaContext context) A method for creating a property of the schema.static SchemacreateTopLevelSchema(io.micronaut.inject.ast.TypedElement element, io.micronaut.inject.visitor.VisitorContext visitorContext, JsonSchemaContext context) A method for creating a JSON schema.io.micronaut.inject.visitor.TypeElementVisitor.VisitorKindstatic voidsetBeanSchemaProperties(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext visitorContext, JsonSchemaContext context, Schema schema) voidvisitClass(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext visitorContext) static voidwriteSchema(Schema schema, io.micronaut.inject.ast.ClassElement originatingElement, io.micronaut.inject.visitor.VisitorContext visitorContext, JsonSchemaContext context) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.core.order.Ordered
getOrderMethods inherited from interface io.micronaut.core.util.Toggleable
isEnabledMethods inherited from interface io.micronaut.inject.visitor.TypeElementVisitor
finish, getClassType, getElementType, getSupportedAnnotationNames, query, start, visitConstructor, visitEnumConstant, visitField, visitMethod
-
Constructor Details
-
JsonSchemaVisitor
public JsonSchemaVisitor()
-
-
Method Details
-
getVisitorKind
@NonNull public io.micronaut.inject.visitor.TypeElementVisitor.VisitorKind getVisitorKind()- Specified by:
getVisitorKindin interfaceio.micronaut.inject.visitor.TypeElementVisitor<JsonSchema,Object>
-
getSupportedOptions
- Specified by:
getSupportedOptionsin interfaceio.micronaut.inject.visitor.TypeElementVisitor<JsonSchema,Object>
-
visitClass
public void visitClass(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext visitorContext) - Specified by:
visitClassin interfaceio.micronaut.inject.visitor.TypeElementVisitor<JsonSchema,Object>
-
createTopLevelSchema
public static Schema createTopLevelSchema(io.micronaut.inject.ast.TypedElement element, io.micronaut.inject.visitor.VisitorContext visitorContext, JsonSchemaContext context) A method for creating a JSON schema. The schema will always a top-level schema and never a reference.- Parameters:
element- The elementvisitorContext- The visitor contextcontext- The JSON schema creation context- Returns:
- The schema
-
createSchema
public static Schema createSchema(io.micronaut.inject.ast.TypedElement element, io.micronaut.inject.visitor.VisitorContext visitorContext, JsonSchemaContext context) A method for creating a property of the schema. In case the property references another schema, it will create a reference.- Parameters:
element- The elementvisitorContext- The visitor contextcontext- The JSON schema creation context- Returns:
- The schema
-
setBeanSchemaProperties
public static void setBeanSchemaProperties(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext visitorContext, JsonSchemaContext context, Schema schema) -
writeSchema
public static void writeSchema(Schema schema, io.micronaut.inject.ast.ClassElement originatingElement, io.micronaut.inject.visitor.VisitorContext visitorContext, JsonSchemaContext context)
-