Class 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:
    XMLMarshaller
    • Field Detail

      • builder

        protected java.lang.StringBuilder builder
      • isStartElementOpen

        protected boolean isStartElementOpen
      • isProcessingCData

        protected boolean isProcessingCData
      • encoder

        protected java.nio.charset.CharsetEncoder encoder
    • Constructor Detail

      • WriterRecord

        public WriterRecord()
    • Method Detail

      • getWriter

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

        public void setWriter​(java.io.Writer writer)
        Set the Writer that the object will be marshalled to.
        Parameters:
        writer - The marshal target.
      • startDocument

        public void startDocument​(java.lang.String encoding,
                                  java.lang.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,
                              java.lang.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​(java.lang.String namespaceURI,
                              java.lang.String localName,
                              java.lang.String qName,
                              java.lang.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​(java.lang.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​(java.lang.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​(java.lang.String value)
        INTERNAL:
      • writeValue

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

        public void node​(org.w3c.dom.Node node,
                         org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver,
                         java.lang.String newNamespace,
                         java.lang.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>