Class JSONFormattedWriterRecord
- All Implemented Interfaces:
org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecord<org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,
,org.eclipse.persistence.internal.core.helper.CoreField, org.eclipse.persistence.internal.oxm.XMLMarshaller, org.eclipse.persistence.internal.oxm.NamespaceResolver> org.eclipse.persistence.internal.oxm.record.MarshalRecord<org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,
,org.eclipse.persistence.internal.core.helper.CoreField, org.eclipse.persistence.internal.oxm.XMLMarshaller, org.eclipse.persistence.internal.oxm.NamespaceResolver> org.eclipse.persistence.internal.oxm.record.XMLRecord<org.eclipse.persistence.internal.core.sessions.CoreAbstractSession>
Use this type of MarshalRecord when the marshal target is a Writer and the JSON should be formatted with carriage returns and indenting.
XMLContext xmlContext = new XMLContext("session-name");
XMLMarshaller xmlMarshaller = xmlContext.createMarshaller();
JSONFormattedWriterRecord jsonFormattedRecord = new JSONFormattedWriterRecord();
jsonFormattedWriterRecord.setWriter(myWriter);
xmlMarshaller.marshal(myObject, jsonFormattedWriterRecord);
If the marshal(Writer) and setMediaType(MediaType.APPLICATION_JSON) and setFormattedOutput(true) method is called on XMLMarshaller, then the Writer is automatically wrapped in a JSONFormattedWriterRecord.
XMLContext xmlContext = new XMLContext("session-name");
XMLMarshaller xmlMarshaller = xmlContext.createMarshaller();
xmlMarshaller.setMediaType(MediaType.APPLICATION_JSON);
xmlMarshaller.setFormattedOutput(true);
xmlMarshaller.marshal(myObject, myWriter);
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.persistence.oxm.record.JSONWriterRecord
JSONWriterRecord.JSONWriterRecordContentHandler, JSONWriterRecord.Level, JSONWriterRecord.Output, JSONWriterRecord.OutputStreamOutput
Nested classes/interfaces inherited from interface org.eclipse.persistence.internal.oxm.record.MarshalRecord
org.eclipse.persistence.internal.oxm.record.MarshalRecord.CycleDetectionStack<E>
Nested classes/interfaces inherited from interface org.eclipse.persistence.internal.oxm.record.XMLRecord
org.eclipse.persistence.internal.oxm.record.XMLRecord.Nil
-
Field Summary
Fields inherited from class org.eclipse.persistence.oxm.record.JSONWriterRecord
attributePrefix, callbackName, characterEscapeHandler, charactersAllowed, encoder, isProcessingCData, level, NULL, writer
Fields inherited from class org.eclipse.persistence.oxm.record.MarshalRecord
COLON_W_SCHEMA_NIL_ATTRIBUTE, textWrapperFragment, TRUE
Fields inherited from class org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecordImpl
equalNamespaceResolvers, hasCustomNamespaceMapper, marshaller, namespaceAware, namespaceResolver, session
Fields inherited from interface org.eclipse.persistence.internal.oxm.record.XMLRecord
DEFAULT_ATTRIBUTE_GROUP, NIL
-
Constructor Summary
ConstructorsConstructorDescriptionJSONFormattedWriterRecord
(OutputStream outputStream) JSONFormattedWriterRecord
(OutputStream outputStream, String callbackName) JSONFormattedWriterRecord
(Writer writer) JSONFormattedWriterRecord
(Writer writer, String callbackName) -
Method Summary
Modifier and TypeMethodDescriptionvoid
characters
(String value) INTERNAL:protected void
void
element
(org.eclipse.persistence.internal.oxm.XPathFragment frag) INTERNAL:void
This method is used to inform the MarshalRecord that it is done receiving element events that are part of a collection.void
INTERNAL:void
endElement
(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver) INTERNAL:protected void
void
Receive notification of a node.void
openStartElement
(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver) INTERNAL:void
This method is used to inform the MarshalRecord that the element events it is about to receive are part of a collection.void
startDocument
(String encoding, String version) INTERNAL:protected void
writeKey
(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment) protected void
protected void
Methods inherited from class org.eclipse.persistence.oxm.record.JSONWriterRecord
attribute, attribute, attribute, cdata, characters, characters, characters, closeStartElement, defaultNamespaceDeclaration, emptyAttribute, emptyCollection, emptyComplex, emptySimple, endCallback, endPrefixMappings, flush, forceValueWrapper, getNamespaceSeparator, getStringForQName, getTextWrapperFragment, getWriter, isWrapperAsCollectionName, marshalWithoutRootElement, namespaceDeclaration, namespaceDeclarations, nilComplex, nilSimple, node, setCallbackName, setMarshaller, setWriter, startCallback, startPrefixMappings, writeValue
Methods inherited from class org.eclipse.persistence.oxm.record.MarshalRecord
add, addGroupingElement, addPositionalNodes, afterContainmentMarshal, beforeContainmentMarshal, clear, closeStartGroupingElements, endPrefixMapping, getCurrentAttributeGroup, getCycleDetectionStack, getDocument, getDOM, getGroupingElements, getLocalName, getNameForFragment, getNamespaceURI, getPositionalNodes, getPrefixBytes, getPrefixForFragment, getValueToWrite, openStartGroupingElements, popAttributeGroup, predicateAttribute, processNamespaceResolverForXSIPrefix, pushAttributeGroup, put, removeGroupingElement, setGroupingElement, setSession, startPrefixMapping, transformToXML, writeHeader
Methods inherited from class org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecordImpl
addExtraNamespacesToNamespaceResolver, addXsiTypeAndClassIndicatorIfRequired, addXsiTypeAndClassIndicatorIfRequired, attributeWithoutQName, getConversionManager, getLeafElementType, getMarshaller, getNamespaceResolver, getOwningObject, getSession, hasCustomNamespaceMapper, hasEqualNamespaceResolvers, isNamespaceAware, isXOPPackage, removeExtraNamespacesFromNamespaceResolver, resolveNamespacePrefix, setCustomNamespaceMapper, setEqualNamespaceResolvers, setLeafElementType, setLeafElementType, setNamespaceResolver, setOwningObject, setXOPPackage, writeXsiTypeAttribute, writeXsiTypeAttribute
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecord
addExtraNamespacesToNamespaceResolver, addXsiTypeAndClassIndicatorIfRequired, addXsiTypeAndClassIndicatorIfRequired, getLeafElementType, getMarshaller, getNamespaceResolver, getOwningObject, hasEqualNamespaceResolvers, isNamespaceAware, resolveNamespacePrefix, setCustomNamespaceMapper, setEqualNamespaceResolvers, setLeafElementType, setNamespaceResolver, setOwningObject, setXOPPackage, writeXsiTypeAttribute, writeXsiTypeAttribute
Methods inherited from interface org.eclipse.persistence.internal.oxm.record.MarshalRecord
attributeWithoutQName, hasCustomNamespaceMapper, isXOPPackage, removeExtraNamespacesFromNamespaceResolver, setLeafElementType
Methods inherited from interface org.eclipse.persistence.internal.oxm.record.XMLRecord
getConversionManager, getSession
-
Constructor Details
-
JSONFormattedWriterRecord
public JSONFormattedWriterRecord() -
JSONFormattedWriterRecord
-
JSONFormattedWriterRecord
-
JSONFormattedWriterRecord
-
JSONFormattedWriterRecord
-
-
Method Details
-
startDocument
Description copied from class:JSONWriterRecord
INTERNAL:- Overrides:
startDocument
in classJSONWriterRecord
- Parameters:
encoding
- The XML document will be encoded using this encoding.version
- This specifies the version of XML.
-
endDocument
public void endDocument()INTERNAL:- Overrides:
endDocument
in classJSONWriterRecord
-
closeComplex
- Overrides:
closeComplex
in classJSONWriterRecord
- Throws:
IOException
-
openStartElement
public void openStartElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver) INTERNAL:- Specified by:
openStartElement
in interfaceorg.eclipse.persistence.internal.oxm.record.MarshalRecord<org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,
org.eclipse.persistence.internal.core.helper.CoreField, org.eclipse.persistence.internal.oxm.XMLMarshaller, org.eclipse.persistence.internal.oxm.NamespaceResolver> - Overrides:
openStartElement
in classJSONWriterRecord
- Parameters:
xPathFragment
- The XPathFragment contains the name and prefix information about the XML element being ended.namespaceResolver
- The NamespaceResolver can be used to resolve the namespace URI for the namespace prefix held by the XPathFragment (if required).
-
element
public void element(org.eclipse.persistence.internal.oxm.XPathFragment frag) INTERNAL:- Overrides:
element
in classJSONWriterRecord
- Parameters:
frag
- The XPathFragment of the element
-
writeListSeparator
- Overrides:
writeListSeparator
in classJSONWriterRecord
- Throws:
IOException
-
writeSeparator
- Overrides:
writeSeparator
in classJSONWriterRecord
- Throws:
IOException
-
endElement
public void endElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver) INTERNAL:- Specified by:
endElement
in interfaceorg.eclipse.persistence.internal.oxm.record.MarshalRecord<org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,
org.eclipse.persistence.internal.core.helper.CoreField, org.eclipse.persistence.internal.oxm.XMLMarshaller, org.eclipse.persistence.internal.oxm.NamespaceResolver> - Overrides:
endElement
in classJSONWriterRecord
- Parameters:
xPathFragment
- The XPathFragment contains the name and prefix information about the XML element being ended.namespaceResolver
- The NamespaceResolver can be used to resolve the namespace URI for the namespace prefix held by the XPathFragment (if required).
-
startCollection
public void startCollection()Description copied from class:MarshalRecord
This method is used to inform the MarshalRecord that the element events it is about to receive are part of a collection.- Specified by:
startCollection
in interfaceorg.eclipse.persistence.internal.oxm.record.MarshalRecord<org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,
org.eclipse.persistence.internal.core.helper.CoreField, org.eclipse.persistence.internal.oxm.XMLMarshaller, org.eclipse.persistence.internal.oxm.NamespaceResolver> - Overrides:
startCollection
in classJSONWriterRecord
- See Also:
-
endEmptyCollection
protected void endEmptyCollection()- Overrides:
endEmptyCollection
in classJSONWriterRecord
-
endCollection
public void endCollection()Description copied from class:MarshalRecord
This method is used to inform the MarshalRecord that it is done receiving element events that are part of a collection.- Specified by:
endCollection
in interfaceorg.eclipse.persistence.internal.oxm.record.MarshalRecord<org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,
org.eclipse.persistence.internal.core.helper.CoreField, org.eclipse.persistence.internal.oxm.XMLMarshaller, org.eclipse.persistence.internal.oxm.NamespaceResolver> - Overrides:
endCollection
in classJSONWriterRecord
- See Also:
-
characters
INTERNAL:- Specified by:
characters
in interfaceorg.eclipse.persistence.internal.oxm.record.MarshalRecord<org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,
org.eclipse.persistence.internal.core.helper.CoreField, org.eclipse.persistence.internal.oxm.XMLMarshaller, org.eclipse.persistence.internal.oxm.NamespaceResolver> - Overrides:
characters
in classJSONWriterRecord
- Parameters:
value
- This is the entire value of the text node.
-
node
public void node(Node node, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver) Receive notification of a node.- Specified by:
node
in interfaceorg.eclipse.persistence.internal.oxm.record.MarshalRecord<org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,
org.eclipse.persistence.internal.core.helper.CoreField, org.eclipse.persistence.internal.oxm.XMLMarshaller, org.eclipse.persistence.internal.oxm.NamespaceResolver> - Overrides:
node
in classMarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
- Parameters:
node
- The Node to be added to the documentnamespaceResolver
- The NamespaceResolver can be used to resolve the namespace URI/prefix of the node
-
writeKey
protected void writeKey(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment) throws IOException - Overrides:
writeKey
in classJSONWriterRecord
- Throws:
IOException
-