Class MarkdownSerializer
- All Implemented Interfaces:
Function<Object,,String> ThrowingFunction<Object,,String> MarkdownMetaProvider,RecordWritable
- Direct Known Subclasses:
MarkdownDocSerializer
Media types
Handles
Produces
Description
The conversion is as follows:
- Beans and Maps are serialized as 2-column key/value Markdown tables.
- Collections and arrays of beans/maps with uniform structure are serialized as multi-column Markdown tables.
- Collections and arrays of simple values are serialized as Markdown bulleted lists.
- Nested beans and complex values in table cells are serialized as inline JSON5 wrapped in backticks.
- Null values are rendered as
"*null*" (italic) by default.
Example:
Example output (bean):
| Property | Value | |---|---| | name | Alice | | age | 30 |
Limitations:
- Multi-line string values cannot round-trip; newlines are replaced with
<br>. - The configured null value string (default:
*null*) cannot be stored as a literal string value. - This serializer is thread safe and reusable.
See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBuilder class.static final classNested classes/interfaces inherited from class org.apache.juneau.marshall.serializer.Serializer
Serializer.Null -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final MarkdownSerializerDefault serializer, all default settings.Fields 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 MarkdownSerializer.Builder<?>create()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.getMarkdownClassMeta(ClassMeta<?> cm) Returns the language-specific metadata on the specified class.Returns the string rendered for null values.Returns a session to use for this context.booleanStreaming-quality signal queryable before opening a cursor.booleanReturns whether table headers are shown.writeRecords(Object output) Convenience delegator that opens aRecordWriterover the output using default session arguments (mirrorsWriterSerializer.write(Object)).Methods inherited from class org.apache.juneau.marshall.serializer.WriterSerializer
applyThrows, getMaxIndent, getQuoteChar, getStreamCharset, isUseWhitespace, isWriterSerializer, println, properties, quoteChar, toString, writeMethods inherited from class org.apache.juneau.marshall.serializer.Serializer
createSerializerBuilder, doWrite, forEachAcceptMediaType, getListener, getMediaTypeRanges, getPrimaryMediaType, getResponseContentType, getResponseHeaders, getUriContext, getUriRelativity, getUriResolution, isAddBeanTypes, 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.commons.function.ThrowingFunction
apply
-
Field Details
-
DEFAULT
Default serializer, all default settings.
-
-
Constructor Details
-
MarkdownSerializer
Constructor.- Parameters:
builder- The builder for this object.
-
-
Method Details
-
create
Creates a new builder for this object.- Returns:
- A new builder.
-
getNullValue
Returns the string rendered for null values.- Returns:
- The null marker.
-
isShowHeaders
Returns whether table headers are shown.- Returns:
- Whether headers are shown.
-
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 classWriterSerializer- 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 classWriterSerializer- Returns:
- A new session builder.
-
getMarkdownBeanPropertyMeta
Description copied from interface:MarkdownMetaProviderReturns the language-specific metadata on the specified bean property.- Specified by:
getMarkdownBeanPropertyMetain interfaceMarkdownMetaProvider- Parameters:
bpm- The bean property to return the metadata on.- Returns:
- The metadata.
-
getMarkdownClassMeta
Description copied from interface:MarkdownMetaProviderReturns the language-specific metadata on the specified class.- Specified by:
getMarkdownClassMetain interfaceMarkdownMetaProvider- 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 classWriterSerializer- Returns:
- A new session object.
-
writeRecords
Convenience delegator that opens aRecordWriterover the output using default session arguments (mirrorsWriterSerializer.write(Object)).The real implementation lives on
MarkdownSerializerSession.writeRecords(Object). Callers that need request-derived configuration should callcreateSession()and invokeMarkdownSerializerSession.writeRecords(Object)on the built session instead.- Specified by:
writeRecordsin interfaceRecordWritable- Parameters:
output- The output.- Returns:
- A new
RecordWriter. - Throws:
IOException- If a problem occurred opening the underlying output.
-
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.
-