Class WriterRecord

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.WriterRecord
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:
FormattedWriterRecord

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

Use this type of MarshalRecord when the marshal target is a Writer and the XML should not be formatted with carriage returns or indenting.

XMLContext xmlContext = new XMLContext("session-name");
XMLMarshaller xmlMarshaller = xmlContext.createMarshaller();
WriterRecord writerRecord = new WriterRecord();
writerRecord.setWriter(myWriter);
xmlMarshaller.marshal(myObject, writerRecord);

If the marshal(Writer) and setFormattedOutput(false) method is called on XMLMarshaller, then the Writer is automatically wrapped in a WriterRecord.

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

See Also:
  • Field Details

    • builder

      protected StringBuilder builder
    • isStartElementOpen

      protected boolean isStartElementOpen
    • isProcessingCData

      protected boolean isProcessingCData
    • encoder

      protected CharsetEncoder encoder
  • Constructor Details

    • WriterRecord

      public WriterRecord()
  • Method Details

    • getWriter

      public Writer getWriter()
      Return the Writer that the object will be marshalled to.
      Returns:
      The marshal target.
    • setWriter

      public void setWriter(Writer writer)
      Set the Writer that the object will be marshalled to.
      Parameters:
      writer - The marshal target.
    • 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.
    • 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>
    • 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)
      INTERNAL:
    • writeValue

      protected void writeValue(String value, boolean isAttribute, StringBuilder writer)
      INTERNAL:
    • node

      public void node(Node node, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver, String newNamespace, String newName)
      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
      newNamespace - replacement root name for the node
      newName - replacement root namespace for the node namespace URI/prefix of the node
    • setMarshaller

      public void setMarshaller(org.eclipse.persistence.internal.oxm.XMLMarshaller marshaller)
      Specified by:
      setMarshaller 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:
      setMarshaller 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:
      setMarshaller in class org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecordImpl<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>
    • 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>