JsonGenerator that outputs JAXB-style XML output instead of JSON content.
Operation requires calling code (usually either standard Jackson serializers,
or in some cases (like BeanSerializer) customized ones) to do
additional configuration calls beyond regular JsonGenerator API,
mostly to pass namespace information.
| Modifier and Type | Field and Description |
|---|---|
| protected LinkedList | _elementNameStack
To support proper serialization of arrays it is necessary to keep stack of element names, so that we can "revert" to earlier |
| protected int | _formatFeatures
Bit flag composed of bits that indicate which
|
| protected boolean | _initialized
Marker set when |
| protected XmlNameProcessor | _nameProcessor
Escapes names with invalid XML characters |
| protected XmlNameProcessor. | _nameToEncode
Reusable internal value object |
| protected boolean | _nextIsAttribute
Marker flag that indicates whether next name to write implies an attribute (true) or element (false) |
| protected boolean | _nextIsCData
Marker flag used to indicate that the next write of a (property) value should be as CData |
| protected boolean | _nextIsUnwrapped
Marker flag used to indicate that the next write of a (property) value should be done without using surrounding start/end elements. |
| protected QName | _nextName
Element or attribute name to use for next output call. |
| protected final XMLStreamWriter | |
| protected final boolean | _stax2Emulation
Marker flag set if the underlying stream writer has to emulate
Stax2 API: this is problematic if trying to use |
| protected SimpleStreamWriteContext | _streamWriteContext
Object that keeps track of the current contextual state of the generator. |
| protected final XmlPrettyPrinter | _xmlPrettyPrinter
We may need to use XML-specific indentation as well |
| protected final XMLStreamWriter2 | |
| protected static final String | DEFAULT_UNKNOWN_ELEMENT
If we support optional definition of element names, this is the element name to use... |
| Access | Constructor and Description |
|---|---|
| public | ToXmlGenerator(ObjectWriteContext writeCtxt, IOContext ioCtxt, int streamWriteFeatures, int xmlFeatures, XMLStreamWriter sw, XmlPrettyPrinter pp, XmlNameProcessor nameProcessor)
|
| Modifier and Type | Method and Description |
|---|---|
| protected void | |
| protected PrettyPrinter | _constructDefaultPrettyPrinter()
Overrides tools. Overridable factory method called to instantiate an appropriate |
| public final void | |
| public final void | |
| protected void | _releaseBuffers()
Implements abstract tools. Method called to release any buffers generator may be holding, once generator is being closed. |
| protected void | _reportUnimplementedStax2(String missingMethod)
Method called in case access to native Stax2 API implementation is required. |
| protected final void | _verifyValueWrite(String typeMsg)
Implements abstract tools. Method called before trying to write a value (scalar or structured), to verify that this is legal in current output state, as well as to output separators if and as necessary. |
| public final void | assignCurrentValue(Object v)
Implements abstract tools. Helper method, usually equivalent to:
|
| protected boolean | checkNextIsUnwrapped()
Method called to see if unwrapping is required; and if so, clear the flag (so further calls will return 'false' unless state is re-set) |
| public ToXmlGenerator | |
| public final Object | currentValue()
Implements abstract tools. Helper method, usually equivalent to:
Note that "current value" is NOT populated (or used) by Streaming generator; it is only used by higher-level data-binding functionality. |
| public void | finishWrappedValue(QName wrapperName, QName wrappedName)
Method called after a structured collection output has completed |
| public void | flush()
Implements abstract tools. Implements java. Method called to flush any buffered content to the underlying target (output stream, writer), and to flush the target itself as well. |
| public XmlPrettyPrinter | getPrettyPrinter()
Overrides tools. Accessor for object that handles pretty-printing (usually additional white space to make results more human-readable) during output. |
| public XMLStreamWriter | |
| protected void | |
| public boolean | has(StreamWriteCapability capability)
Overrides tools. Accessor for checking whether this generator has specified capability. |
| public void | |
| public boolean | |
| public final boolean | |
| public void | |
| public void | |
| public void | |
| public final void | |
| public final boolean | setNextNameIfMissing(QName name)
Method that does same as |
| public void | startWrappedValue(QName
Element used as wrapper around elements, if any (null if none) wrapperName, QName Element used around individual content items (can not
be null) wrappedName)Methdod called when a structured (collection, array, map) is being output. |
| public JacksonFeatureSet | streamWriteCapabilities()
Implements abstract tools. Accessor for getting metadata on capabilities of this generator, based on underlying data format being read (directly or indirectly). |
| public final TokenStreamContext | streamWriteContext()
Implements abstract tools. Accessor for context object that provides information about low-level logical position withing output token stream. |
| public int | streamWriteOutputBuffered()
Implements abstract tools. Stax2 does not expose buffered content amount, so we can only return
|
| public Object | streamWriteOutputTarget()
Implements abstract tools. Method that can be used to get access to object that is used
as target for generated output; this is usually either
|
| private byte[] | |
| private byte[] | |
| public Version | version()
Implements abstract tools. Implements tools. Accessor for finding out version of the bundle that provided this generator instance. |
| public JsonGenerator | writeBinary(Base64Variant b64variant, byte[] data, int offset, int len)
Implements abstract tools. Method that will output given chunk of binary data as base64 encoded, as a complete String value (surrounded by double quotes). |
| public int | writeBinary(Base64Variant b64variant, InputStream data, int dataLength)
Overrides tools. Method similar to |
| public JsonGenerator | writeBoolean(boolean value)
Implements abstract tools. Method for outputting literal JSON boolean value (one of Strings 'true' and 'false'). |
| public JsonGenerator | writeEndArray()
Implements abstract tools. Method for writing closing marker of a JSON Array value (character ']'; plus possible white space decoration if pretty-printing is enabled). |
| public JsonGenerator | writeEndObject()
Implements abstract tools. Method for writing closing marker of an Object value (character '}'; plus possible white space decoration if pretty-printing is enabled). |
| public JsonGenerator | writeName(SerializableString name)
Overrides tools. Method similar to |
| public JsonGenerator | writeName(String name)
Implements abstract tools. Method for writing an Object Property name (JSON String surrounded by double quotes: syntactically identical to a JSON String value), possibly decorated by white space if pretty-printing is enabled. |
| public JsonGenerator | writeNull()
Implements abstract tools. Method for outputting literal JSON null value. |
| public JsonGenerator | writeNumber(short v)
Implements abstract tools. Method for outputting given value as JSON number. |
| public JsonGenerator | writeNumber(int i)
Implements abstract tools. Method for outputting given value as JSON number. |
| public JsonGenerator | writeNumber(long l)
Implements abstract tools. Method for outputting given value as JSON number. |
| public JsonGenerator | writeNumber(double d)
Implements abstract tools. Method for outputting indicate JSON numeric value. |
| public JsonGenerator | writeNumber(float f)
Implements abstract tools. Method for outputting indicate JSON numeric value. |
| public JsonGenerator | writeNumber(BigDecimal dec)
Implements abstract tools. Method for outputting indicate JSON numeric value. |
| public JsonGenerator | writeNumber(BigInteger value)
Implements abstract tools. Method for outputting given value as JSON number. |
| public JsonGenerator | writeNumber(String encodedValue)
Implements abstract tools. Write method that can be used for custom numeric types that can not be (easily?) converted to "standard" Java number types. |
| public JsonGenerator | writePropertyId(long id)
Implements abstract tools. Alternative to |
| public JsonGenerator | writeRaw(String text)
Implements abstract tools. Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such). |
| public JsonGenerator | writeRaw(String text, int offset, int len)
Implements abstract tools. Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such). |
| public JsonGenerator | writeRaw(char[] text, int offset, int len)
Implements abstract tools. Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such). |
| public JsonGenerator | writeRaw(char c)
Implements abstract tools. Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such). |
| public JsonGenerator | writeRawUTF8String(byte[] text, int offset, int length)
Implements abstract tools. Method similar to |
| public JsonGenerator | writeRawValue(String text)
Overrides tools. Method that will force generator to copy input text verbatim without any modifications, but assuming it must constitute a single legal JSON value (number, string, boolean, null, Array or List). |
| public JsonGenerator | writeRawValue(String text, int offset, int len)
Overrides tools.
|
| public JsonGenerator | writeRawValue(char[] text, int offset, int len)
Overrides tools.
|
| public JsonGenerator | writeRawValue(SerializableString text)
Overrides tools. Method similar to |
| public JsonGenerator | |
| public JsonGenerator | writeStartArray()
Implements abstract tools. Method for writing starting marker of a Array value (for JSON this is character '['; plus possible white space decoration if pretty-printing is enabled). |
| public JsonGenerator | writeStartArray(Object currValue)
Implements abstract tools. Method for writing start marker of an Array value, similar
to |
| public JsonGenerator | writeStartObject()
Implements abstract tools. Method for writing starting marker of an Object value (character '{'; plus possible white space decoration if pretty-printing is enabled). |
| public JsonGenerator | writeStartObject(Object currValue)
Implements abstract tools. Method for writing starting marker of an Object value to represent the given Java Object value. |
| private void | |
| public JsonGenerator | writeString(String text)
Implements abstract tools. Method for outputting a String value. |
| public JsonGenerator | writeString(char[] text, int offset, int len)
Implements abstract tools. Method for outputting a String value. |
| public JsonGenerator | writeString(SerializableString text)
Overrides tools. Method similar to |
| public JsonGenerator | writeUTF8String(byte[] text, int offset, int length)
Implements abstract tools. Method similar to |