public class JSONWriterRecord extends MarshalRecord
Use this type of MarshalRecord when the marshal target is a Writer and the JSON should not be formatted with carriage returns or indenting.
XMLContext xmlContext = new XMLContext("session-name");
XMLMarshaller xmlMarshaller = xmlContext.createMarshaller();
JSONRecord jsonWriterRecord = new JSONWriterRecord();
jsonWriterRecord.setWriter(myWriter);
xmlMarshaller.marshal(myObject, jsonWriterRecord);
If the marshal(Writer) and setMediaType(MediaType.APPLICATION_JSON) and setFormattedOutput(false) method is called on XMLMarshaller, then the Writer is automatically wrapped in a JSONWriterRecord.
XMLContext xmlContext = new XMLContext("session-name");
XMLMarshaller xmlMarshaller = xmlContext.createMarshaller();
xmlMarshaller.setMediaType(MediaType.APPLICATION_JSON);
xmlMarshaller xmlMarshaller.setFormattedOutput(false);
xmlMarshaller.marshal(myObject, myWriter);
XMLMarshaller,
Serialized Form| Modifier and Type | Class and Description |
|---|---|
protected class |
JSONWriterRecord.JSONWriterRecordContentHandler
This class will typically be used in conjunction with an XMLFragmentReader.
|
protected static class |
JSONWriterRecord.Level
Instances of this class are used to maintain state about the current
level of the JSON message being marshalled.
|
MarshalRecord.CycleDetectionStack<E>org.eclipse.persistence.internal.sessions.AbstractRecord.EntrySet, org.eclipse.persistence.internal.sessions.AbstractRecord.KeySet, org.eclipse.persistence.internal.sessions.AbstractRecord.NoEntry, org.eclipse.persistence.internal.sessions.AbstractRecord.RecordEntry, org.eclipse.persistence.internal.sessions.AbstractRecord.RecordEntryIterator, org.eclipse.persistence.internal.sessions.AbstractRecord.RecordKeyIterator, org.eclipse.persistence.internal.sessions.AbstractRecord.RecordValuesIterator, org.eclipse.persistence.internal.sessions.AbstractRecord.ValuesSet| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
attributePrefix |
protected java.lang.String |
callbackName |
protected CharacterEscapeHandler |
characterEscapeHandler |
protected boolean |
charactersAllowed |
protected java.nio.charset.CharsetEncoder |
encoder |
protected boolean |
isProcessingCData |
protected boolean |
isStartElementOpen |
protected java.util.Stack<JSONWriterRecord.Level> |
levels |
protected static java.lang.String |
NULL |
protected java.lang.String |
space |
protected java.io.Writer |
writer |
COLON_W_SCHEMA_NIL_ATTRIBUTE, textWrapperFragment, TRUEcurrentObject, equalNamespaceResolvers, hasCustomNamespaceMapper, marshaller, namespaceAware, namespaceResolver, NIL, session, unmarshaller| Constructor and Description |
|---|
JSONWriterRecord() |
JSONWriterRecord(java.io.Writer writer) |
JSONWriterRecord(java.io.Writer writer,
java.lang.String callbackName) |
| Modifier and Type | Method and Description |
|---|---|
void |
attribute(java.lang.String namespaceURI,
java.lang.String localName,
java.lang.String qName,
java.lang.String value)
INTERNAL:
|
void |
attribute(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver,
java.lang.Object value,
javax.xml.namespace.QName schemaType)
Convert the value if necessary and write out the attribute and converted value.
|
void |
attribute(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver,
java.lang.String value)
INTERNAL:
|
void |
cdata(java.lang.String value)
INTERNAL:
|
void |
characters(javax.xml.namespace.QName schemaType,
java.lang.Object value,
java.lang.String mimeType,
boolean isCDATA)
Convert the value if necessary and write out the converted value.
|
void |
characters(javax.xml.namespace.QName schemaType,
java.lang.Object value,
java.lang.String mimeType,
boolean isCDATA,
boolean isAttribute) |
void |
characters(java.lang.String value)
INTERNAL:
|
void |
characters(java.lang.String value,
boolean isString,
boolean isAttribute)
INTERNAL:
|
protected void |
closeComplex() |
void |
closeStartElement()
INTERNAL:
|
void |
defaultNamespaceDeclaration(java.lang.String defaultNamespace)
Add the defaultNamespace declaration
|
void |
element(org.eclipse.persistence.internal.oxm.XPathFragment frag)
INTERNAL:
|
void |
emptyAttribute(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
Used when an nil attribute should be written
|
boolean |
emptyCollection(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver,
boolean openGrouping)
Handle marshal of an empty collection.
|
void |
emptyComplex(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
Used when an empty complex item should be written
|
void |
emptySimple(NamespaceResolver namespaceResolver)
Used when an empty simple value should be written
|
protected void |
endCallback() |
void |
endCollection()
This method is used to inform the MarshalRecord that it is done receiving
element events that are part of a collection.
|
void |
endDocument()
INTERNAL:
|
void |
endElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
INTERNAL:
|
protected void |
endEmptyCollection() |
void |
endPrefixMappings(NamespaceResolver namespaceResolver)
INTERNAL:
override so we don't iterate over namespaces when endPrefixMapping doesn't do anything
|
char |
getNamespaceSeparator()
INTERNAL:
The character used to separate the prefix and uri portions when namespaces are present
|
protected java.lang.String |
getStringForQName(javax.xml.namespace.QName qName) |
org.eclipse.persistence.internal.oxm.XPathFragment |
getTextWrapperFragment()
INTERNAL:
The optional fragment used to wrap the text() mappings
|
java.io.Writer |
getWriter()
Return the Writer that the object will be marshalled to.
|
boolean |
isWrapperAsCollectionName() |
void |
marshalWithoutRootElement(org.eclipse.persistence.internal.oxm.TreeObjectBuilder treeObjectBuilder,
java.lang.Object object,
XMLDescriptor descriptor,
XMLRoot root,
boolean isXMLRoot) |
void |
namespaceDeclaration(java.lang.String prefix,
java.lang.String namespaceURI)
Add the specified namespace declaration
|
void |
namespaceDeclarations(NamespaceResolver namespaceResolver)
INTERNAL:
|
void |
nilComplex(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
INTERNAL:
|
void |
nilSimple(NamespaceResolver namespaceResolver)
INTERNAL:
|
void |
node(org.w3c.dom.Node node,
NamespaceResolver namespaceResolver,
java.lang.String uri,
java.lang.String name)
Receive notification of a node.
|
void |
openStartElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
INTERNAL:
|
void |
setCallbackName(java.lang.String callbackName) |
void |
setMarshaller(XMLMarshaller marshaller)
INTERNAL:
|
void |
setWriter(java.io.Writer writer)
Set the Writer that the object will be marshalled to.
|
protected void |
startCallback()
INTERNAL:
|
void |
startCollection()
This method is used to inform the MarshalRecord that the element events
it is about to receive are part of a collection.
|
void |
startDocument(java.lang.String encoding,
java.lang.String version)
INTERNAL:
|
void |
startPrefixMappings(NamespaceResolver namespaceResolver)
INTERNAL:
override so we don't iterate over namespaces when startPrefixMapping doesn't do anything
|
protected void |
writeKey(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment) |
protected void |
writeValue(java.lang.String value,
boolean isAttribute)
INTERNAL:
|
add, addGroupingElement, addPositionalNodes, afterContainmentMarshal, beforeContainmentMarshal, clear, closeStartGroupingElements, endPrefixMapping, getCycleDetectionStack, getDocument, getDOM, getGroupingElements, getLocalName, getNameForFragment, getNameForFragmentBytes, getNamespaceURI, getPositionalNodes, getPrefixForFragment, getValueToWrite, node, openStartGroupingElements, predicateAttribute, processNamespaceResolverForXSIPrefix, put, removeGroupingElement, setGroupingElement, setSession, startPrefixMapping, transformToXML, writeHeaderattributeWithoutQName, contains, convertToXMLField, convertToXMLField, get, get, getCurrentObject, getDocPresPolicy, getIndicatingNoEntry, getLeafElementType, getMarshaller, getNamespaceResolver, getOwningObject, getSession, getUnmarshaller, hasCustomNamespaceMapper, hasEqualNamespaceResolvers, isNamespaceAware, isXOPPackage, put, resolveNamespacePrefix, setCurrentObject, setCustomNamespaceMapper, setDocPresPolicy, setEqualNamespaceResolvers, setLeafElementType, setLeafElementType, setNamespaceResolver, setOwningObject, setUnmarshaller, setXOPPackageclone, containsKey, containsKey, containsKey, containsValue, elements, entrySet, get, getField, getFields, getIndicatingNoEntry, getLookupField, getValues, getValues, getValues, hasNullValueInFields, isEmpty, keys, keySet, mergeFrom, put, putAll, remove, remove, remove, replaceAt, resetSize, setFields, setNullValueInFields, setValues, size, toString, valuesprotected java.io.Writer writer
protected boolean isStartElementOpen
protected boolean isProcessingCData
protected java.util.Stack<JSONWriterRecord.Level> levels
protected static final java.lang.String NULL
protected java.lang.String attributePrefix
protected boolean charactersAllowed
protected java.nio.charset.CharsetEncoder encoder
protected java.lang.String space
protected CharacterEscapeHandler characterEscapeHandler
protected java.lang.String callbackName
public JSONWriterRecord()
public JSONWriterRecord(java.io.Writer writer)
public JSONWriterRecord(java.io.Writer writer,
java.lang.String callbackName)
public void setCallbackName(java.lang.String callbackName)
public void setMarshaller(XMLMarshaller marshaller)
setMarshaller in class XMLRecordpublic boolean emptyCollection(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver,
boolean openGrouping)
emptyCollection in class MarshalRecordxPathFragment - namespaceResolver - openGrouping - if grouping elements should be marshalled for empty collectionspublic java.io.Writer getWriter()
public void setWriter(java.io.Writer writer)
writer - The marshal target.public void namespaceDeclaration(java.lang.String prefix,
java.lang.String namespaceURI)
MarshalRecordnamespaceDeclaration in class MarshalRecordpublic void defaultNamespaceDeclaration(java.lang.String defaultNamespace)
MarshalRecorddefaultNamespaceDeclaration in class MarshalRecordpublic void startDocument(java.lang.String encoding,
java.lang.String version)
startDocument in class MarshalRecordencoding - The XML document will be encoded using this encoding.version - This specifies the version of XML.protected void startCallback()
throws java.io.IOException
java.io.IOExceptionpublic void endDocument()
endDocument in class MarshalRecordpublic void openStartElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
openStartElement in class MarshalRecordxPathFragment - 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).public void element(org.eclipse.persistence.internal.oxm.XPathFragment frag)
element in class MarshalRecordfrag - The XPathFragment of the elementpublic void attribute(java.lang.String namespaceURI,
java.lang.String localName,
java.lang.String qName,
java.lang.String value)
attribute in class MarshalRecordnamespaceURI - The namespace URI, if the attribute is not namespace
qualified the value of this parameter wil be null.localName - The local name of the attribute.qName - The qualified name of the attribute.value - This is the complete value for the attribute.public void attribute(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver,
java.lang.String value)
attribute in class MarshalRecordxPathFragment - 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).value - This is the complete value for the attribute.public void startPrefixMappings(NamespaceResolver namespaceResolver)
startPrefixMappings in class MarshalRecordpublic void endPrefixMappings(NamespaceResolver namespaceResolver)
endPrefixMappings in class MarshalRecordpublic void closeStartElement()
closeStartElement in class MarshalRecordpublic void endElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
endElement in class MarshalRecordxPathFragment - 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).protected void closeComplex()
throws java.io.IOException
java.io.IOExceptionpublic void startCollection()
MarshalRecordstartCollection in class MarshalRecordendCollectionprotected void endEmptyCollection()
protected void endCallback()
throws java.io.IOException
java.io.IOExceptionpublic void endCollection()
MarshalRecordendCollection in class MarshalRecordstartCollectionpublic void characters(java.lang.String value)
characters in class MarshalRecordvalue - This is the entire value of the text node.public void characters(java.lang.String value,
boolean isString,
boolean isAttribute)
public void attribute(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver,
java.lang.Object value,
javax.xml.namespace.QName schemaType)
MarshalRecordattribute in class MarshalRecordpublic void characters(javax.xml.namespace.QName schemaType,
java.lang.Object value,
java.lang.String mimeType,
boolean isCDATA)
MarshalRecordcharacters in class MarshalRecordpublic void characters(javax.xml.namespace.QName schemaType,
java.lang.Object value,
java.lang.String mimeType,
boolean isCDATA,
boolean isAttribute)
public void namespaceDeclarations(NamespaceResolver namespaceResolver)
namespaceDeclarations in class MarshalRecordnamespaceResolver - The NamespaceResolver contains the namespace
prefix and URI pairings that need to be declared.public void nilComplex(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
nilComplex in class MarshalRecordpublic void nilSimple(NamespaceResolver namespaceResolver)
nilSimple in class MarshalRecordpublic void emptySimple(NamespaceResolver namespaceResolver)
emptySimple in class MarshalRecordpublic void emptyAttribute(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
MarshalRecordemptyAttribute in class MarshalRecordpublic void emptyComplex(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
emptyComplex in class MarshalRecordpublic void marshalWithoutRootElement(org.eclipse.persistence.internal.oxm.TreeObjectBuilder treeObjectBuilder,
java.lang.Object object,
XMLDescriptor descriptor,
XMLRoot root,
boolean isXMLRoot)
marshalWithoutRootElement in class MarshalRecordpublic void cdata(java.lang.String value)
cdata in class MarshalRecordvalue - This is the value of the text to be wrappedpublic char getNamespaceSeparator()
getNamespaceSeparator in class XMLRecordpublic org.eclipse.persistence.internal.oxm.XPathFragment getTextWrapperFragment()
getTextWrapperFragment in class MarshalRecordprotected void writeKey(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment)
throws java.io.IOException
java.io.IOExceptionprotected void writeValue(java.lang.String value,
boolean isAttribute)
protected java.lang.String getStringForQName(javax.xml.namespace.QName qName)
getStringForQName in class MarshalRecordpublic void node(org.w3c.dom.Node node,
NamespaceResolver namespaceResolver,
java.lang.String uri,
java.lang.String name)
node in class MarshalRecordnode - The Node to be added to the documentnamespaceResolver - The NamespaceResolver can be used to resolve the
namespace URI/prefix of the nodename - replacement root namespace for the node
namespace URI/prefix of the nodepublic boolean isWrapperAsCollectionName()
isWrapperAsCollectionName in class MarshalRecord