Package org.apache.juneau.marshall.json
Class JsonSchemaSerializer
java.lang.Object
org.apache.juneau.marshall.Context
org.apache.juneau.marshall.MarshallingContextable
org.apache.juneau.marshall.MarshallingTraverseContext
org.apache.juneau.marshall.serializer.Serializer
org.apache.juneau.marshall.serializer.WriterSerializer
org.apache.juneau.marshall.json.JsonSerializer
org.apache.juneau.marshall.json.JsonSchemaSerializer
- All Implemented Interfaces:
Function<Object,,String> ThrowingFunction<Object,,String> JsonMetaProvider,JsonSchemaMetaProvider,ArrayRecordWritable,RecordWritable,TokenWritable
- Direct Known Subclasses:
JsonSchemaSerializer.Readable
Serializes POJO metadata to HTTP responses as JSON-Schema.
Accept types: application/json+schema, text/json+schema
Media types
Handles
Produces
Description
Produces the JSON-schema for the JSON produced by theJsonSerializer class with the same properties.
Notes:
- This class is thread safe and reusable.
See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBuilder class.static classDefault serializer, with whitespace.Nested classes/interfaces inherited from class org.apache.juneau.marshall.json.JsonSerializer
JsonSerializer.DefaultBuilderNested classes/interfaces inherited from class org.apache.juneau.marshall.serializer.Serializer
Serializer.Null -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final JsonSchemaSerializerDefault serializer, all default settings.static final JsonSchemaSerializerDefault serializer, all default settings.Fields inherited from class org.apache.juneau.marshall.json.JsonSerializer
addBeanTypesJson, escapeSolidusFields inherited from class org.apache.juneau.marshall.serializer.WriterSerializer
maxIndent, quoteChar, quoteCharOverride, useWhitespaceFields inherited from class org.apache.juneau.marshall.serializer.Serializer
accept, addBeanTypes, addRootType, keepNullProperties, listener, nonDefault, produces, sortCollections, sortMaps, trimEmptyCollections, trimEmptyMaps, trimStringsFields inherited from class org.apache.juneau.marshall.MarshallingContextable
marshallingContextFields inherited from class org.apache.juneau.marshall.Context
CONTEXT_APPLY_FILTER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncopy()Creates a builder from this context object.static JsonSchemaSerializer.Buildercreate()Creates a new builder for this object.Create a session builder based on the properties defined on this context.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.booleanStreaming-quality signal queryable before opening a cursor.Returns the properties on this bean as a map for debugging.writeRecords(Object output) Convenience delegator (default session args) for a record writer that emits the JSON Schema for each value passed towrite(...).writeTokens(Object output) Convenience delegator (default session args) for the raw-JSON token writer.Methods inherited from class org.apache.juneau.marshall.json.JsonSerializer
getJsonBeanPropertyMeta, getJsonClassMeta, getSchemaSerializer, isAddBeanTypes, isEscapeSolidus, writeArrayRecordsMethods inherited from class org.apache.juneau.marshall.serializer.WriterSerializer
applyThrows, getMaxIndent, getQuoteChar, getStreamCharset, isUseWhitespace, isWriterSerializer, println, quoteChar, toString, writeMethods inherited from class org.apache.juneau.marshall.serializer.Serializer
createSerializerBuilder, doWrite, forEachAcceptMediaType, getListener, getMediaTypeRanges, getPrimaryMediaType, getResponseContentType, getResponseHeaders, getUriContext, getUriRelativity, getUriResolution, isAddRootType, isKeepNullProperties, isNonDefault, isSortCollections, isSortMaps, isTrimEmptyCollections, isTrimEmptyMaps, isTrimStrings, write, writeToStringMethods inherited from class org.apache.juneau.marshall.MarshallingTraverseContext
getDetectRecursions, getIgnoreRecursions, getInitialDepth, getMaxDepth, isDetectRecursions, isIgnoreRecursions, shouldDetectRecursionsMethods inherited from class org.apache.juneau.marshall.MarshallingContextable
getDurationFormat, getMarshallingContext, getPeriodFormatMethods inherited from class org.apache.juneau.marshall.Context
createBuilder, getAnnotationProvider, init, isDebug, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.juneau.marshall.stream.ArrayRecordWritable
isArrayRecordStreaming, writeArrayRecordsMethods inherited from interface org.apache.juneau.commons.function.ThrowingFunction
apply
-
Field Details
-
DEFAULT
Default serializer, all default settings. -
DEFAULT_READABLE
Default serializer, all default settings.
-
-
Constructor Details
-
JsonSchemaSerializer
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:ContextCreates a builder from this context object.Builders are used to define new contexts (e.g. serializers, parsers) based on existing configurations.
- Overrides:
copyin classJsonSerializer- Returns:
- A new Builder object.
-
createSession
Description copied from class:ContextCreate 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:
createSessionin classJsonSerializer- Returns:
- A new session builder.
-
getJsonSchemaBeanPropertyMeta
Description copied from interface:JsonSchemaMetaProviderReturns the language-specific metadata on the specified bean property.- Specified by:
getJsonSchemaBeanPropertyMetain interfaceJsonSchemaMetaProvider- Parameters:
bpm- The bean property to return the metadata on.- Returns:
- The metadata.
-
getJsonSchemaClassMeta
Description copied from interface:JsonSchemaMetaProviderReturns the language-specific metadata on the specified class.- Specified by:
getJsonSchemaClassMetain interfaceJsonSchemaMetaProvider- Parameters:
cm- The class to return the metadata on.- Returns:
- The metadata.
-
getSession
Description copied from class:ContextReturns a session to use for this context.Note that subclasses may opt to return a reusable non-modifiable session.
- Overrides:
getSessionin classJsonSerializer- Returns:
- A new session object.
-
writeTokens
Convenience delegator (default session args) for the raw-JSON token writer. Real impl onJsonSchemaSerializerSession.writeTokens(Object).Note: the cursor's structural methods produce ordinary JSON regardless of the JsonSchema-aware
WriterSerializer.write(Object)path; theobject(Object)bridge is disabled. UseWriterSerializer.write(Object)for schema generation, or compose the schema manually via the structural methods.- Specified by:
writeTokensin interfaceTokenWritable- Overrides:
writeTokensin classJsonSerializer- Parameters:
output- The output.- Returns:
- A new
JsonTokenWriterwithobject(...)disabled. - Throws:
IOException- If the output type is not supported or could not be opened.
-
writeRecords
Convenience delegator (default session args) for a record writer that emits the JSON Schema for each value passed towrite(...). Real impl onJsonSchemaSerializerSession.writeRecords(Object).- Specified by:
writeRecordsin interfaceRecordWritable- Specified by:
writeRecordsin interfaceTokenWritable- Parameters:
output- The output.- Returns:
- A new
RecordWriter. - Throws:
IOException- If the output type is not supported or could not be opened.
-
isRecordStreaming
Description copied from interface:RecordWritableStreaming-quality signal queryable before opening a cursor.- Specified by:
isRecordStreamingin interfaceRecordWritable- Returns:
true ifRecordWritable.writeRecords(Object)returns an O(1)-memory streaming cursor;false for buffered (whole-value) formats backed byRecordAdapter.
-
properties
Description copied from class:ContextReturns the properties on this bean as a map for debugging.- Overrides:
propertiesin classJsonSerializer- Returns:
- The properties on this bean as a map for debugging.
-