Package org.apache.juneau.jsonschema
Class JsonSchemaGenerator
java.lang.Object
org.apache.juneau.Context
org.apache.juneau.BeanContextable
org.apache.juneau.BeanTraverseContext
org.apache.juneau.jsonschema.JsonSchemaGenerator
- All Implemented Interfaces:
AnnotationProvider
,JsonSchemaMetaProvider
Generates JSON-schema metadata about POJOs.
Notes:
- This class is thread safe and reusable.
See Also:
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionstatic final JsonSchemaGenerator
Default serializer, all default settings.Fields inherited from class org.apache.juneau.Context
CONTEXT_APPLY_FILTER
Fields inherited from interface org.apache.juneau.AnnotationProvider
DISABLE_ANNOTATION_CACHING
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncopy()
Creates a builder from this context object.static JsonSchemaGenerator.Builder
create()
Creates a new builder for this object.Create a session builder based on the properties defined on this context.protected final Set<TypeCategory>
Add descriptions to types.protected final Set<TypeCategory>
Add examples.protected final BeanDefMapper
Bean schema definition mapper.Ignore types from schema definitions.Returns the language-specific metadata on the specified bean property.getJsonSchemaClassMeta
(ClassMeta<?> cm) Returns the language-specific metadata on the specified class.Returns a session to use for this context.protected final boolean
Allow nested descriptions.protected final boolean
Allow nested examples.boolean
isIgnoredType
(ClassMeta<?> cm) Returnstrue if the specified type is ignored.protected final boolean
Use bean definitions.protected JsonMap
Returns the properties on this bean as a map for debugging.Methods inherited from class org.apache.juneau.BeanTraverseContext
getInitialDepth, getMaxDepth, isDetectRecursions, isIgnoreRecursions
Methods inherited from class org.apache.juneau.BeanContextable
getBeanContext
Methods inherited from class org.apache.juneau.Context
createBuilder, firstAnnotation, firstAnnotation, firstAnnotation, firstAnnotation, firstDeclaredAnnotation, forEachAnnotation, forEachAnnotation, forEachAnnotation, forEachAnnotation, forEachDeclaredAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, init, isDebug, lastAnnotation, lastAnnotation, lastAnnotation, lastAnnotation, lastDeclaredAnnotation, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.juneau.AnnotationProvider
firstAnnotation, firstAnnotation, firstAnnotation, firstAnnotation, firstDeclaredAnnotation, forEachAnnotation, forEachAnnotation, forEachAnnotation, forEachAnnotation, forEachDeclaredAnnotation, lastAnnotation, lastAnnotation, lastAnnotation, lastAnnotation, lastDeclaredAnnotation
-
Field Details
-
DEFAULT
Default serializer, all default settings.
-
-
Constructor Details
-
JsonSchemaGenerator
Constructor.- Parameters:
builder
- The builder for this object.
-
-
Method Details
-
create
Creates a new builder for this object.- Returns:
- A new builder.
-
copy
Description copied from class:Context
Creates a builder from this context object.Builders are used to define new contexts (e.g. serializers, parsers) based on existing configurations.
- Specified by:
copy
in classBeanTraverseContext
- Returns:
- A new Builder object.
-
createSession
Description copied from class:Context
Create a session builder based on the properties defined on this context.Use this method for creating sessions where you want to override basic settings. Otherwise, use
Context.getSession()
directly.- Overrides:
createSession
in classContext
- Returns:
- A new session builder.
-
getSession
Description copied from class:Context
Returns a session to use for this context.Note that subclasses may opt to return a reusable non-modifiable session.
- Overrides:
getSession
in classContext
- Returns:
- A new session object.
-
getAddDescriptionsTo
Add descriptions to types.- Returns:
- Set of categories of types that descriptions should be automatically added to generated schemas.
- See Also:
-
getAddExamplesTo
Add examples.- Returns:
- Set of categories of types that examples should be automatically added to generated schemas.
- See Also:
-
isAllowNestedDescriptions
Allow nested descriptions.- Returns:
true if nested descriptions are allowed in schema definitions.- See Also:
-
isAllowNestedExamples
Allow nested examples.- Returns:
true if nested examples are allowed in schema definitions.- See Also:
-
getBeanDefMapper
Bean schema definition mapper.- Returns:
- Interface to use for converting Bean classes to definition IDs and URIs.
- See Also:
-
getIgnoreTypes
Ignore types from schema definitions.- Returns:
- Custom schema information for particular class types.
- See Also:
-
isUseBeanDefs
Use bean definitions.- Returns:
true if schemas on beans will be serialized with'$ref' tags.- See Also:
-
getJsonSchemaClassMeta
Description copied from interface:JsonSchemaMetaProvider
Returns the language-specific metadata on the specified class.- Specified by:
getJsonSchemaClassMeta
in interfaceJsonSchemaMetaProvider
- Parameters:
cm
- The class to return the metadata on.- Returns:
- The metadata.
-
getJsonSchemaBeanPropertyMeta
Description copied from interface:JsonSchemaMetaProvider
Returns the language-specific metadata on the specified bean property.- Specified by:
getJsonSchemaBeanPropertyMeta
in interfaceJsonSchemaMetaProvider
- Parameters:
bpm
- The bean property to return the metadata on.- Returns:
- The metadata.
-
isIgnoredType
Returnstrue if the specified type is ignored.The type is ignored if it's specified in the
JsonSchemaGenerator.Builder.ignoreTypes(String...)
setting.
Ignored types returnnull on the call toJsonSchemaGeneratorSession.getSchema(ClassMeta)
.- Parameters:
cm
- The type to check.- Returns:
true if the specified type is ignored.
-
properties
Description copied from class:Context
Returns the properties on this bean as a map for debugging.- Overrides:
properties
in classBeanTraverseContext
- Returns:
- The properties on this bean as a map for debugging.
-