Class OutputStreamRecord

java.lang.Object
org.eclipse.persistence.internal.core.sessions.CoreAbstractRecord
org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecordImpl<org.eclipse.persistence.internal.core.sessions.CoreAbstractSession,org.eclipse.persistence.internal.core.helper.CoreField,MARSHALLER,org.eclipse.persistence.internal.oxm.NamespaceResolver>
org.eclipse.persistence.oxm.record.MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
org.eclipse.persistence.oxm.record.OutputStreamRecord
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>
Direct Known Subclasses:
FormattedOutputStreamRecord

public class OutputStreamRecord extends MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>

Use this type of MarshalRecord when the marshal target is an OutputStream and the XML should not be formatted with carriage returns or indenting. This type is only used if the encoding of the OutputStream is UTF-8

XMLContext xmlContext = new XMLContext("session-name");
XMLMarshaller xmlMarshaller = xmlContext.createMarshaller();
OutputStreamRecord record = new OutputStreamRecord();
record.setOutputStream(myOutputStream);
xmlMarshaller.marshal(myObject, record);

If the marshal(OutputStream) and setFormattedOutput(false) method is called on XMLMarshaller and the encoding is UTF-8, then the OutputStream is automatically wrapped in an OutputStream.

XMLContext xmlContext = new XMLContext("session-name");
XMLMarshaller xmlMarshaller = xmlContext.createMarshaller();
xmlMarshaller xmlMarshaller.setFormattedOutput(false);
xmlMarshaller.marshal(myObject, myOutputStream);

See Also:
  • Field Details

    • OPEN_XML_PI_AND_VERSION_ATTRIBUTE

      protected static final byte[] OPEN_XML_PI_AND_VERSION_ATTRIBUTE
    • OPEN_ENCODING_ATTRIBUTE

      protected static final byte[] OPEN_ENCODING_ATTRIBUTE
    • CLOSE_PI

      protected static final byte[] CLOSE_PI
    • SPACE

      protected static final byte SPACE
      See Also:
    • CLOSE_ATTRIBUTE_VALUE

      protected static final byte CLOSE_ATTRIBUTE_VALUE
      See Also:
    • OPEN_CDATA

      protected static final byte[] OPEN_CDATA
    • CLOSE_CDATA

      protected static final byte[] CLOSE_CDATA
    • OPEN_COMMENT

      protected static final byte[] OPEN_COMMENT
    • CLOSE_COMMENT

      protected static final byte[] CLOSE_COMMENT
    • OPEN_START_ELEMENT

      protected static final byte OPEN_START_ELEMENT
      See Also:
    • CLOSE_ELEMENT

      protected static final byte CLOSE_ELEMENT
      See Also:
    • AMP

      protected static final byte[] AMP
    • LT

      protected static final byte[] LT
    • GT

      protected static final byte[] GT
    • QUOT

      protected static final byte[] QUOT
    • ENCODING

      protected static final byte[] ENCODING
    • SLASH_N

      protected static final byte[] SLASH_N
    • SLASH_R

      protected static final byte[] SLASH_R
    • outputStream

      protected OutputStream outputStream
    • isStartElementOpen

      protected boolean isStartElementOpen
    • isProcessingCData

      protected boolean isProcessingCData
  • Constructor Details

    • OutputStreamRecord

      public OutputStreamRecord()
  • Method Details

    • getOutputStream

      public OutputStream getOutputStream()
      Return the OutputStream that the object will be marshalled to.
      Returns:
      The marshal target.
    • setOutputStream

      public void setOutputStream(OutputStream outputStream)
      Set the OutputStream that the object will be marshalled to.
      Parameters:
      outputStream - The marshal target.
    • startPrefixMappings

      public void startPrefixMappings(org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver)
      INTERNAL: override so we don't iterate over namespaces when startPrefixMapping doesn't do anything
      Overrides:
      startPrefixMappings in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
    • startDocument

      public void startDocument(String encoding, String version)
      INTERNAL:
      Specified by:
      startDocument in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
      Parameters:
      encoding - The XML document will be encoded using this encoding.
      version - This specifies the version of XML.
    • writeHeader

      public void writeHeader()
      INTERNAL
      Overrides:
      writeHeader in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
    • endDocument

      public void endDocument()
      INTERNAL:
      Specified by:
      endDocument in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
    • openStartElement

      public void openStartElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver)
      INTERNAL:
      Specified by:
      openStartElement in interface 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>
      Overrides:
      openStartElement in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
      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:
      Specified by:
      element in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
      Parameters:
      frag - The XPathFragment of the element
    • attribute

      public void attribute(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver, String value)
      INTERNAL:
      Specified by:
      attribute in interface 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>
      Specified by:
      attribute in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
      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).
      value - This is the complete value for the attribute.
    • attribute

      public void attribute(String namespaceURI, String localName, String qName, String value)
      INTERNAL:
      Specified by:
      attribute in interface 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>
      Specified by:
      attribute in interface 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>
      Specified by:
      attribute in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
      Parameters:
      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.
    • closeStartElement

      public void closeStartElement()
      INTERNAL:
      Specified by:
      closeStartElement in interface 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>
      Specified by:
      closeStartElement in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
    • endElement

      public void endElement(org.eclipse.persistence.internal.oxm.XPathFragment xPathFragment, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver)
      INTERNAL:
      Specified by:
      endElement in interface 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>
      Specified by:
      endElement in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
      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).
    • characters

      public void characters(String value)
      INTERNAL:
      Specified by:
      characters in interface 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>
      Specified by:
      characters in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
      Parameters:
      value - This is the entire value of the text node.
    • cdata

      public void cdata(String value)
      INTERNAL:
      Specified by:
      cdata in interface 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>
      Specified by:
      cdata in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
      Parameters:
      value - This is the value of the text to be wrapped
    • writeValue

      protected void writeValue(String value, boolean escapeChars)
      INTERNAL:
    • writeValue

      protected void writeValue(String value, boolean escapeChars, boolean isAttribute, OutputStream os)
      INTERNAL:
    • node

      public void node(Node node, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver, String uri, String localName)
      Receive notification of a node.
      Specified by:
      node in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
      Parameters:
      node - The Node to be added to the document
      namespaceResolver - The NamespaceResolver can be used to resolve the namespace URI/prefix of the node
      uri - replacement root name for the node
      localName - replacement root namespace for the node namespace URI/prefix of the node
    • flush

      public void flush()
      Specified by:
      flush in interface 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>
      Overrides:
      flush in class MarshalRecord<org.eclipse.persistence.internal.oxm.XMLMarshaller>
    • outputStreamWrite

      protected void outputStreamWrite(byte[] bytes)
    • outputStreamWrite

      protected void outputStreamWrite(byte[] bytes, OutputStream os)
    • outputStreamWrite

      protected void outputStreamWrite(byte aByte)
    • outputStreamWrite

      protected void outputStreamWrite(byte aByte, OutputStream os)