- 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.OutputStreamOutputNested 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, writerFields inherited from class org.eclipse.persistence.oxm.record.MarshalRecord
COLON_W_SCHEMA_NIL_ATTRIBUTE, textWrapperFragment, TRUEFields inherited from class org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecordImpl
equalNamespaceResolvers, hasCustomNamespaceMapper, marshaller, namespaceAware, namespaceResolver, sessionFields 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 TypeMethodDescriptionvoidcharacters(String value) INTERNAL:protected voidvoidelement(org.eclipse.persistence.internal.oxm.XPathFragment frag) INTERNAL:voidThis method is used to inform the MarshalRecord that it is done receiving element events that are part of a collection.voidINTERNAL:voidendElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver) INTERNAL:protected voidvoidReceive notification of a node.voidopenStartElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver) INTERNAL:voidThis method is used to inform the MarshalRecord that the element events it is about to receive are part of a collection.voidstartDocument(String encoding, String version) INTERNAL:protected voidwriteKey(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment) protected voidprotected voidMethods 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, writeValueMethods 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, writeHeaderMethods 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, writeXsiTypeAttributeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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, writeXsiTypeAttributeMethods inherited from interface org.eclipse.persistence.internal.oxm.record.MarshalRecord
attributeWithoutQName, hasCustomNamespaceMapper, isXOPPackage, removeExtraNamespacesFromNamespaceResolver, setLeafElementTypeMethods 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:JSONWriterRecordINTERNAL:- Overrides:
startDocumentin 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:
endDocumentin classJSONWriterRecord
-
closeComplex
- Overrides:
closeComplexin classJSONWriterRecord- Throws:
IOException
-
openStartElement
public void openStartElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver) INTERNAL:- Specified by:
openStartElementin 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:
openStartElementin 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:
elementin classJSONWriterRecord- Parameters:
frag- The XPathFragment of the element
-
writeListSeparator
- Overrides:
writeListSeparatorin classJSONWriterRecord- Throws:
IOException
-
writeSeparator
- Overrides:
writeSeparatorin classJSONWriterRecord- Throws:
IOException
-
endElement
public void endElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver) INTERNAL:- Specified by:
endElementin 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:
endElementin 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:MarshalRecordThis method is used to inform the MarshalRecord that the element events it is about to receive are part of a collection.- Specified by:
startCollectionin 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:
startCollectionin classJSONWriterRecord- See Also:
-
endEmptyCollection
protected void endEmptyCollection()- Overrides:
endEmptyCollectionin classJSONWriterRecord
-
endCollection
public void endCollection()Description copied from class:MarshalRecordThis method is used to inform the MarshalRecord that it is done receiving element events that are part of a collection.- Specified by:
endCollectionin 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:
endCollectionin classJSONWriterRecord- See Also:
-
characters
INTERNAL:- Specified by:
charactersin 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:
charactersin 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:
nodein 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:
nodein 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:
writeKeyin classJSONWriterRecord- Throws:
IOException
-