public class JSONWriterRecord extends MarshalRecord<XMLMarshaller>
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
MarshalRecord.CycleDetectionStack<E>
XMLRecord.Nil
DEFAULT_ATTRIBUTE_GROUP, NIL
Constructor and Description |
---|
JSONWriterRecord() |
JSONWriterRecord(java.io.OutputStream outputStream) |
JSONWriterRecord(java.io.OutputStream outputStream,
java.lang.String callbackName) |
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(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(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:
|
void |
closeStartElement()
INTERNAL:
|
void |
defaultNamespaceDeclaration(java.lang.String defaultNamespace)
Add the defaultNamespace declaration
|
void |
element(XPathFragment frag)
INTERNAL:
|
void |
emptyAttribute(XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
Used when an nil attribute should be written
|
boolean |
emptyCollection(XPathFragment xPathFragment,
NamespaceResolver namespaceResolver,
boolean openGrouping)
Handle marshal of an empty collection.
|
void |
emptyComplex(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
|
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(XPathFragment xPathFragment,
NamespaceResolver namespaceResolver)
INTERNAL:
|
void |
endPrefixMappings(NamespaceResolver namespaceResolver)
INTERNAL:
override so we don't iterate over namespaces when endPrefixMapping doesn't do anything
|
void |
flush() |
void |
forceValueWrapper() |
char |
getNamespaceSeparator()
INTERNAL:
The character used to separate the prefix and uri portions when namespaces are present
|
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(ObjectBuilder treeObjectBuilder,
java.lang.Object object,
Descriptor descriptor,
Root root,
boolean isXMLRoot)
INTERNAL:
|
void |
namespaceDeclaration(java.lang.String prefix,
java.lang.String namespaceURI)
Add the specified namespace declaration
|
void |
namespaceDeclarations(NamespaceResolver namespaceResolver)
INTERNAL:
|
void |
nilComplex(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(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.
|
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
|
add, addGroupingElement, afterContainmentMarshal, beforeContainmentMarshal, clear, closeStartGroupingElements, endPrefixMapping, getCurrentAttributeGroup, getCycleDetectionStack, getDocument, getDOM, getGroupingElements, getLocalName, getNamespaceURI, getPositionalNodes, getValueToWrite, node, openStartGroupingElements, popAttributeGroup, predicateAttribute, pushAttributeGroup, put, removeGroupingElement, setGroupingElement, setSession, startPrefixMapping, transformToXML, writeHeader
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
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
attributeWithoutQName, hasCustomNamespaceMapper, isXOPPackage, removeExtraNamespacesFromNamespaceResolver, setLeafElementType
addExtraNamespacesToNamespaceResolver, addXsiTypeAndClassIndicatorIfRequired, addXsiTypeAndClassIndicatorIfRequired, getLeafElementType, getMarshaller, getNamespaceResolver, getOwningObject, hasEqualNamespaceResolvers, isNamespaceAware, resolveNamespacePrefix, setCustomNamespaceMapper, setEqualNamespaceResolvers, setLeafElementType, setNamespaceResolver, setOwningObject, setXOPPackage, writeXsiTypeAttribute, writeXsiTypeAttribute
getConversionManager, getSession
public JSONWriterRecord()
public JSONWriterRecord(java.io.OutputStream outputStream)
public JSONWriterRecord(java.io.OutputStream outputStream, java.lang.String callbackName)
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 interface AbstractMarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
setMarshaller
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
setMarshaller
in class AbstractMarshalRecordImpl<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
public boolean emptyCollection(XPathFragment xPathFragment, NamespaceResolver namespaceResolver, boolean openGrouping)
emptyCollection
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
emptyCollection
in class MarshalRecord<XMLMarshaller>
xPathFragment
- namespaceResolver
- openGrouping
- if grouping elements should be marshalled for empty collectionspublic void forceValueWrapper()
forceValueWrapper
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
forceValueWrapper
in class MarshalRecord<XMLMarshaller>
public 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)
MarshalRecord
namespaceDeclaration
in interface AbstractMarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
namespaceDeclaration
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
namespaceDeclaration
in class MarshalRecord<XMLMarshaller>
public void defaultNamespaceDeclaration(java.lang.String defaultNamespace)
MarshalRecord
defaultNamespaceDeclaration
in class MarshalRecord<XMLMarshaller>
public void startDocument(java.lang.String encoding, java.lang.String version)
startDocument
in class MarshalRecord<XMLMarshaller>
encoding
- The XML document will be encoded using this encoding.version
- This specifies the version of XML.public void endDocument()
endDocument
in class MarshalRecord<XMLMarshaller>
public void openStartElement(XPathFragment xPathFragment, NamespaceResolver namespaceResolver)
openStartElement
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
openStartElement
in class MarshalRecord<XMLMarshaller>
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).public void element(XPathFragment frag)
element
in class MarshalRecord<XMLMarshaller>
frag
- 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 interface AbstractMarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
attribute
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
attribute
in class MarshalRecord<XMLMarshaller>
namespaceURI
- 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(XPathFragment xPathFragment, NamespaceResolver namespaceResolver, java.lang.String value)
attribute
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
attribute
in class MarshalRecord<XMLMarshaller>
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).value
- This is the complete value for the attribute.public void startPrefixMappings(NamespaceResolver namespaceResolver)
startPrefixMappings
in class MarshalRecord<XMLMarshaller>
public void endPrefixMappings(NamespaceResolver namespaceResolver)
endPrefixMappings
in class MarshalRecord<XMLMarshaller>
public void closeStartElement()
closeStartElement
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
closeStartElement
in class MarshalRecord<XMLMarshaller>
public void endElement(XPathFragment xPathFragment, NamespaceResolver namespaceResolver)
endElement
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
endElement
in class MarshalRecord<XMLMarshaller>
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).public void startCollection()
MarshalRecord
startCollection
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
startCollection
in class MarshalRecord<XMLMarshaller>
MarshalRecord.endCollection()
public void endCollection()
MarshalRecord
endCollection
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
endCollection
in class MarshalRecord<XMLMarshaller>
MarshalRecord.startCollection()
public void characters(java.lang.String value)
characters
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
characters
in class MarshalRecord<XMLMarshaller>
value
- This is the entire value of the text node.public void characters(java.lang.String value, boolean isString, boolean isAttribute)
public void attribute(XPathFragment xPathFragment, NamespaceResolver namespaceResolver, java.lang.Object value, javax.xml.namespace.QName schemaType)
MarshalRecord
attribute
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
attribute
in class MarshalRecord<XMLMarshaller>
public void characters(javax.xml.namespace.QName schemaType, java.lang.Object value, java.lang.String mimeType, boolean isCDATA)
MarshalRecord
characters
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
characters
in class MarshalRecord<XMLMarshaller>
public 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 MarshalRecord<XMLMarshaller>
namespaceResolver
- The NamespaceResolver contains the namespace
prefix and URI pairings that need to be declared.public void nilComplex(XPathFragment xPathFragment, NamespaceResolver namespaceResolver)
nilComplex
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
nilComplex
in class MarshalRecord<XMLMarshaller>
public void nilSimple(NamespaceResolver namespaceResolver)
nilSimple
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
nilSimple
in class MarshalRecord<XMLMarshaller>
public void emptySimple(NamespaceResolver namespaceResolver)
emptySimple
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
emptySimple
in class MarshalRecord<XMLMarshaller>
public void emptyAttribute(XPathFragment xPathFragment, NamespaceResolver namespaceResolver)
MarshalRecord
emptyAttribute
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
emptyAttribute
in class MarshalRecord<XMLMarshaller>
public void emptyComplex(XPathFragment xPathFragment, NamespaceResolver namespaceResolver)
emptyComplex
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
emptyComplex
in class MarshalRecord<XMLMarshaller>
public void marshalWithoutRootElement(ObjectBuilder treeObjectBuilder, java.lang.Object object, Descriptor descriptor, Root root, boolean isXMLRoot)
marshalWithoutRootElement
in class MarshalRecord<XMLMarshaller>
public void cdata(java.lang.String value)
cdata
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
cdata
in class MarshalRecord<XMLMarshaller>
value
- This is the value of the text to be wrappedpublic char getNamespaceSeparator()
getNamespaceSeparator
in interface XMLRecord<CoreAbstractSession>
getNamespaceSeparator
in class AbstractMarshalRecordImpl<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
public XPathFragment getTextWrapperFragment()
getTextWrapperFragment
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
getTextWrapperFragment
in class MarshalRecord<XMLMarshaller>
public void node(org.w3c.dom.Node node, NamespaceResolver namespaceResolver, java.lang.String uri, java.lang.String name)
node
in class MarshalRecord<XMLMarshaller>
node
- The Node to be added to the documentnamespaceResolver
- The NamespaceResolver can be used to resolve the
namespace URI/prefix of the nodeuri
- replacement root name for the nodename
- replacement root namespace for the node
namespace URI/prefix of the nodepublic boolean isWrapperAsCollectionName()
isWrapperAsCollectionName
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
isWrapperAsCollectionName
in class MarshalRecord<XMLMarshaller>
public void flush()
flush
in interface MarshalRecord<CoreAbstractSession,CoreField,XMLMarshaller,NamespaceResolver>
flush
in class MarshalRecord<XMLMarshaller>
EclipseLink 2.6.3, "build v20160428-59c81c5" API Reference