Class DOMRecord

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.util.Map, org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecord<org.eclipse.persistence.internal.sessions.AbstractSession,​org.eclipse.persistence.internal.helper.DatabaseField,​XMLMarshaller,​NamespaceResolver>, org.eclipse.persistence.internal.oxm.record.AbstractUnmarshalRecord<org.eclipse.persistence.internal.sessions.AbstractSession,​org.eclipse.persistence.internal.helper.DatabaseField,​XMLUnmarshaller>, org.eclipse.persistence.internal.oxm.record.TransformationRecord, org.eclipse.persistence.internal.oxm.record.XMLRecord<org.eclipse.persistence.internal.sessions.AbstractSession>, Record
    Direct Known Subclasses:
    EISDOMRecord

    public class DOMRecord
    extends XMLRecord
    implements org.eclipse.persistence.internal.oxm.record.TransformationRecord
    PUBLIC: Provides a Record/Map API on an XML DOM element.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.eclipse.persistence.internal.sessions.AbstractRecord

        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
      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
      • Nested classes/interfaces inherited from interface org.eclipse.persistence.internal.oxm.record.XMLRecord

        org.eclipse.persistence.internal.oxm.record.XMLRecord.Nil
    • Constructor Summary

      Constructors 
      Constructor Description
      DOMRecord()
      INTERNAL: Default constructor.
      DOMRecord​(java.lang.String rootElementName)
      INTERNAL: Create a record with the root element name.
      DOMRecord​(java.lang.String rootElementName, java.lang.String rootElementNamespaceURI)
      INTERNAL: Create a record with the root element name get the namespace URI from the namespaceResolver.
      DOMRecord​(java.lang.String rootElementName, NamespaceResolver namespaceResolver)
      INTERNAL: Create a record with the root element name get the namespace URI from the namespaceResolver.
      DOMRecord​(java.lang.String localRootElementName, NamespaceResolver namespaceResolver, org.w3c.dom.Node parent)
      INTERNAL: Create a record with the local root element name, that is a child of the parent.
      DOMRecord​(java.lang.String localRootElementName, org.w3c.dom.Node parent)
      INTERNAL: Create a record with the local root element name, that is a child of the parent.
      DOMRecord​(org.w3c.dom.Document document)
      INTERNAL: Create a record with the element.
      DOMRecord​(org.w3c.dom.Element element)
      INTERNAL: Create a record with the element.
      DOMRecord​(org.w3c.dom.Node node)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(org.eclipse.persistence.internal.helper.DatabaseField key, java.lang.Object value)
      INTERNAL: Add the field-value pair to the document.
      XMLRecord buildNestedRow​(org.w3c.dom.Element element)
      INTERNAL: Build the nested record, this can be overwriten by subclasses to use their subclass instance.
      void clear()
      PUBLIC: Clear the sub-nodes of the DOM.
      DOMRecord clone()
      INTERNAL: Clone the row and its values.
      boolean contains​(java.lang.Object value)
      PUBLIC: Check if the value is contained in the row.
      boolean containsKey​(org.eclipse.persistence.internal.helper.DatabaseField key)
      INTERNAL: Check if the field is contained in the row.
      org.w3c.dom.Node createNewDocument​(java.lang.String defaultRootElementName)
      INTERNAL: Creates a new Document and returns the root element of that document
      org.w3c.dom.Node createNewDocument​(java.lang.String defaultRootElementName, java.lang.String namespaceURI)
      INTERNAL: Creates a new Document and returns the root element of that document
      java.util.Set entrySet()
      PUBLIC:
      java.lang.Object get​(org.eclipse.persistence.internal.helper.DatabaseField key)
      INTERNAL: Retrieve the value for the field.
      org.w3c.dom.Document getDocument()
      PUBLIC: Return the document.
      org.w3c.dom.Node getDOM()
      PUBLIC: Return the DOM.
      java.util.Vector getFields()
      INTERNAL: This should not be used, but added some support for it as is called from some places such as sdk call used in the descriptor to define operation not supported, may also be called from toplin in some places.
      java.lang.Object getIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key)
      INTERNAL: Given a DatabaseField return the corresponding value from the document
      java.lang.Object getIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key, boolean shouldReturnNode)  
      java.lang.Object getIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key, boolean shouldReturnNode, boolean checkForXsiNil)  
      java.lang.String getLocalName()
      PUBLIC: Get the local name of the context root element.
      java.lang.String getNamespaceURI()
      PUBLIC: Get the namespace URI for the context root element.
      org.eclipse.persistence.internal.oxm.ReferenceResolver getReferenceResolver()
      INTERNAL: The ReferenceResolver that is leveraged by key based mappings.
      java.util.Vector getValues()
      INTERNAL: This should not be used, but added some support for it as is called from some places such as sdk call used in the descriptor to define operation not supported, may also be called from TopLink in some places.
      java.lang.Object getValues​(java.lang.String key)
      INTERNAL: Retrieve the value for the field name.
      java.lang.Object getValues​(org.eclipse.persistence.internal.helper.DatabaseField key)
      INTERNAL: Given a DatabaseField, return the corresponding values from the document
      java.lang.Object getValues​(org.eclipse.persistence.internal.helper.DatabaseField key, AbstractNullPolicy nullPolicy)  
      java.util.List<XMLEntry> getValuesIndicatingNoEntry​(java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> keys)  
      java.util.List<XMLEntry> getValuesIndicatingNoEntry​(java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> keys, boolean shouldReturnNodes)  
      java.lang.Object getValuesIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key)  
      java.lang.Object getValuesIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key, boolean shouldReturnNodes)
      INTERNAL: Given a DatabaseField, return the corresponding values from the document
      java.lang.Object getValuesIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key, boolean shouldReturnNodes, AbstractNullPolicy nullPolicy)  
      java.lang.Object getValuesIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key, AbstractNullPolicy nullPolicy)  
      java.util.Set keySet()
      PUBLIC: Return the set of element names from the DOM.
      java.lang.Object put​(java.lang.Object key, java.lang.Object value)  
      java.lang.Object put​(java.util.List<XMLField> xmlFields, java.util.List<XMLEntry> values)  
      java.lang.Object put​(org.eclipse.persistence.internal.helper.DatabaseField key, java.lang.Object value)
      INTERNAL: Set the field value into the DOM.
      java.lang.Object remove​(org.eclipse.persistence.internal.helper.DatabaseField key)
      INTERNAL: Remove the field key from the row.
      void replaceAt​(java.lang.Object value, int index)
      INTERNAL: replaces the value at index with value
      java.lang.String resolveNamespacePrefix​(java.lang.String prefix)  
      void resolveReferences​(org.eclipse.persistence.internal.core.sessions.CoreAbstractSession abstractSession, IDResolver idResolver)
      INTERNAL: If the UnmarshalRecord has a ReferenceResolver, tell it to resolve its references.
      void setDOM​(org.w3c.dom.Element element)  
      void setDOM​(org.w3c.dom.Node element)
      INTERNAL: Sets the dom and updated document to be the owner document of the given element
      protected void setFields​(java.util.Vector fields)
      INTERNAL: Setting fields vector will not update the document so this is not supported
      void setReferenceResolver​(org.eclipse.persistence.internal.oxm.ReferenceResolver referenceResolver)
      INTERNAL: Set the ReferenceResolver that will be leveraged by key based mappings.
      void setSession​(org.eclipse.persistence.internal.sessions.AbstractSession session)  
      protected void setValues​(java.util.Vector values)
      INTERNAL: Setting values vector will not update the document so this is not supported
      int size()
      Return the number of elements in the DOM.
      java.lang.String toString()
      INTERNAL: Print the dom XML string.
      void transformFromXML​(java.io.Reader reader)
      Set the XML from an XML reader.
      void transformFromXML​(java.lang.String xml)
      Set the XML from an XML string.
      void transformToWriter​(java.io.Writer writer)
      Write the XML string representation of the DOM.
      java.lang.String transformToXML()
      Return the XML string representation of the DOM.
      java.util.Collection values()
      PUBLIC: Return the collection of element values from the DOM.
      • Methods inherited from class org.eclipse.persistence.internal.sessions.AbstractRecord

        containsKey, containsKey, containsValue, elements, get, getField, getLookupField, getSopObject, hasNullValueInFields, hasSopObject, isEmpty, keys, mergeFrom, putAll, remove, remove, replaceAt, resetSize, setNullValueInFields, setSopObject
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Constructor Detail

      • DOMRecord

        public DOMRecord()
        INTERNAL: Default constructor.
      • DOMRecord

        public DOMRecord​(java.lang.String rootElementName)
        INTERNAL: Create a record with the root element name.
      • DOMRecord

        public DOMRecord​(java.lang.String rootElementName,
                         NamespaceResolver namespaceResolver)
        INTERNAL: Create a record with the root element name get the namespace URI from the namespaceResolver.
      • DOMRecord

        public DOMRecord​(java.lang.String rootElementName,
                         java.lang.String rootElementNamespaceURI)
        INTERNAL: Create a record with the root element name get the namespace URI from the namespaceResolver.
      • DOMRecord

        public DOMRecord​(java.lang.String localRootElementName,
                         org.w3c.dom.Node parent)
        INTERNAL: Create a record with the local root element name, that is a child of the parent.
      • DOMRecord

        public DOMRecord​(java.lang.String localRootElementName,
                         NamespaceResolver namespaceResolver,
                         org.w3c.dom.Node parent)
        INTERNAL: Create a record with the local root element name, that is a child of the parent. Lookup the namespace URI from the namespaceResolver.
      • DOMRecord

        public DOMRecord​(org.w3c.dom.Element element)
        INTERNAL: Create a record with the element.
      • DOMRecord

        public DOMRecord​(org.w3c.dom.Node node)
      • DOMRecord

        public DOMRecord​(org.w3c.dom.Document document)
        INTERNAL: Create a record with the element.
    • Method Detail

      • getLocalName

        public java.lang.String getLocalName()
        PUBLIC: Get the local name of the context root element.
        Specified by:
        getLocalName in class XMLRecord
      • getNamespaceURI

        public java.lang.String getNamespaceURI()
        PUBLIC: Get the namespace URI for the context root element.
        Specified by:
        getNamespaceURI in class XMLRecord
      • getReferenceResolver

        public org.eclipse.persistence.internal.oxm.ReferenceResolver getReferenceResolver()
        INTERNAL: The ReferenceResolver that is leveraged by key based mappings.
        Since:
        EclipseLink 2.5.0
      • setReferenceResolver

        public void setReferenceResolver​(org.eclipse.persistence.internal.oxm.ReferenceResolver referenceResolver)
        INTERNAL: Set the ReferenceResolver that will be leveraged by key based mappings.
        Since:
        EclipseLink 2.5.0
      • add

        public void add​(org.eclipse.persistence.internal.helper.DatabaseField key,
                        java.lang.Object value)
        INTERNAL: Add the field-value pair to the document.
        Overrides:
        add in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • clear

        public void clear()
        PUBLIC: Clear the sub-nodes of the DOM.
        Specified by:
        clear in interface java.util.Map
        Specified by:
        clear in class XMLRecord
      • clone

        public DOMRecord clone()
        INTERNAL: Clone the row and its values.
        Overrides:
        clone in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • createNewDocument

        public org.w3c.dom.Node createNewDocument​(java.lang.String defaultRootElementName)
        INTERNAL: Creates a new Document and returns the root element of that document
      • createNewDocument

        public org.w3c.dom.Node createNewDocument​(java.lang.String defaultRootElementName,
                                                  java.lang.String namespaceURI)
        INTERNAL: Creates a new Document and returns the root element of that document
      • getDocument

        public org.w3c.dom.Document getDocument()
        PUBLIC: Return the document.
        Specified by:
        getDocument in class XMLRecord
      • containsKey

        public boolean containsKey​(org.eclipse.persistence.internal.helper.DatabaseField key)
        INTERNAL: Check if the field is contained in the row.
        Overrides:
        containsKey in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • contains

        public boolean contains​(java.lang.Object value)
        PUBLIC: Check if the value is contained in the row.
        Overrides:
        contains in class XMLRecord
      • get

        public java.lang.Object get​(org.eclipse.persistence.internal.helper.DatabaseField key)
        Description copied from class: XMLRecord
        INTERNAL: Retrieve the value for the field. If missing null is returned.
        Specified by:
        get in interface org.eclipse.persistence.internal.oxm.record.AbstractUnmarshalRecord<org.eclipse.persistence.internal.sessions.AbstractSession,​org.eclipse.persistence.internal.helper.DatabaseField,​XMLUnmarshaller>
        Overrides:
        get in class XMLRecord
      • getIndicatingNoEntry

        public java.lang.Object getIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key)
        INTERNAL: Given a DatabaseField return the corresponding value from the document
        Overrides:
        getIndicatingNoEntry in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • getIndicatingNoEntry

        public java.lang.Object getIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key,
                                                     boolean shouldReturnNode)
      • getIndicatingNoEntry

        public java.lang.Object getIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key,
                                                     boolean shouldReturnNode,
                                                     boolean checkForXsiNil)
      • getValues

        public java.lang.Object getValues​(java.lang.String key)
        INTERNAL: Retrieve the value for the field name.
        Overrides:
        getValues in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • getValues

        public java.lang.Object getValues​(org.eclipse.persistence.internal.helper.DatabaseField key)
        INTERNAL: Given a DatabaseField, return the corresponding values from the document
        Overrides:
        getValues in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • getValues

        public java.lang.Object getValues​(org.eclipse.persistence.internal.helper.DatabaseField key,
                                          AbstractNullPolicy nullPolicy)
      • getValuesIndicatingNoEntry

        public java.lang.Object getValuesIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key)
      • getValuesIndicatingNoEntry

        public java.lang.Object getValuesIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key,
                                                           AbstractNullPolicy nullPolicy)
      • getValuesIndicatingNoEntry

        public java.util.List<XMLEntry> getValuesIndicatingNoEntry​(java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> keys)
      • getValuesIndicatingNoEntry

        public java.util.List<XMLEntry> getValuesIndicatingNoEntry​(java.util.List<org.eclipse.persistence.internal.helper.DatabaseField> keys,
                                                                   boolean shouldReturnNodes)
      • getValuesIndicatingNoEntry

        public java.lang.Object getValuesIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key,
                                                           boolean shouldReturnNodes)
        INTERNAL: Given a DatabaseField, return the corresponding values from the document
      • getValuesIndicatingNoEntry

        public java.lang.Object getValuesIndicatingNoEntry​(org.eclipse.persistence.internal.helper.DatabaseField key,
                                                           boolean shouldReturnNodes,
                                                           AbstractNullPolicy nullPolicy)
      • buildNestedRow

        public XMLRecord buildNestedRow​(org.w3c.dom.Element element)
        INTERNAL: Build the nested record, this can be overwriten by subclasses to use their subclass instance.
      • getDOM

        public org.w3c.dom.Node getDOM()
        PUBLIC: Return the DOM.
        Specified by:
        getDOM in interface org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecord<org.eclipse.persistence.internal.sessions.AbstractSession,​org.eclipse.persistence.internal.helper.DatabaseField,​XMLMarshaller,​NamespaceResolver>
        Specified by:
        getDOM in class XMLRecord
      • put

        public java.lang.Object put​(org.eclipse.persistence.internal.helper.DatabaseField key,
                                    java.lang.Object value)
        INTERNAL: Set the field value into the DOM. The field name must be a valid simple XPath expression.
        Specified by:
        put in interface org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecord<org.eclipse.persistence.internal.sessions.AbstractSession,​org.eclipse.persistence.internal.helper.DatabaseField,​XMLMarshaller,​NamespaceResolver>
        Overrides:
        put in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • put

        public java.lang.Object put​(java.util.List<XMLField> xmlFields,
                                    java.util.List<XMLEntry> values)
      • put

        public java.lang.Object put​(java.lang.Object key,
                                    java.lang.Object value)
                             throws ValidationException
        Specified by:
        put in interface java.util.Map
        Specified by:
        put in interface org.eclipse.persistence.internal.oxm.record.TransformationRecord
        Overrides:
        put in class org.eclipse.persistence.internal.sessions.AbstractRecord
        Throws:
        ValidationException
      • remove

        public java.lang.Object remove​(org.eclipse.persistence.internal.helper.DatabaseField key)
        INTERNAL: Remove the field key from the row.
        Overrides:
        remove in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • replaceAt

        public void replaceAt​(java.lang.Object value,
                              int index)
        INTERNAL: replaces the value at index with value
        Overrides:
        replaceAt in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • entrySet

        public java.util.Set entrySet()
        PUBLIC:
        Specified by:
        entrySet in interface java.util.Map
        Overrides:
        entrySet in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • setFields

        protected void setFields​(java.util.Vector fields)
                          throws XMLMarshalException
        INTERNAL: Setting fields vector will not update the document so this is not supported
        Overrides:
        setFields in class org.eclipse.persistence.internal.sessions.AbstractRecord
        Throws:
        XMLMarshalException
      • getFields

        public java.util.Vector getFields()
        INTERNAL: This should not be used, but added some support for it as is called from some places such as sdk call used in the descriptor to define operation not supported, may also be called from toplin in some places.
        Overrides:
        getFields in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • getValues

        public java.util.Vector getValues()
        INTERNAL: This should not be used, but added some support for it as is called from some places such as sdk call used in the descriptor to define operation not supported, may also be called from TopLink in some places.
        Overrides:
        getValues in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • setValues

        protected void setValues​(java.util.Vector values)
                          throws XMLMarshalException
        INTERNAL: Setting values vector will not update the document so this is not supported
        Overrides:
        setValues in class org.eclipse.persistence.internal.sessions.AbstractRecord
        Throws:
        XMLMarshalException
      • setDOM

        public void setDOM​(org.w3c.dom.Node element)
        INTERNAL: Sets the dom and updated document to be the owner document of the given element
      • setDOM

        public void setDOM​(org.w3c.dom.Element element)
      • toString

        public java.lang.String toString()
        INTERNAL: Print the dom XML string.
        Overrides:
        toString in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • keySet

        public java.util.Set keySet()
        PUBLIC: Return the set of element names from the DOM.
        Specified by:
        keySet in interface java.util.Map
        Overrides:
        keySet in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • values

        public java.util.Collection values()
        PUBLIC: Return the collection of element values from the DOM.
        Specified by:
        values in interface java.util.Map
        Overrides:
        values in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • size

        public int size()
        Return the number of elements in the DOM.
        Specified by:
        size in interface java.util.Map
        Overrides:
        size in class org.eclipse.persistence.internal.sessions.AbstractRecord
      • transformFromXML

        public void transformFromXML​(java.lang.String xml)
        Set the XML from an XML string.
      • setSession

        public void setSession​(org.eclipse.persistence.internal.sessions.AbstractSession session)
        Specified by:
        setSession in interface org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecord<org.eclipse.persistence.internal.sessions.AbstractSession,​org.eclipse.persistence.internal.helper.DatabaseField,​XMLMarshaller,​NamespaceResolver>
        Overrides:
        setSession in class XMLRecord
      • transformFromXML

        public void transformFromXML​(java.io.Reader reader)
        Set the XML from an XML reader.
      • transformToXML

        public java.lang.String transformToXML()
        Return the XML string representation of the DOM.
        Specified by:
        transformToXML in class XMLRecord
      • transformToWriter

        public void transformToWriter​(java.io.Writer writer)
        Write the XML string representation of the DOM.
      • resolveNamespacePrefix

        public java.lang.String resolveNamespacePrefix​(java.lang.String prefix)
        Specified by:
        resolveNamespacePrefix in interface org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecord<org.eclipse.persistence.internal.sessions.AbstractSession,​org.eclipse.persistence.internal.helper.DatabaseField,​XMLMarshaller,​NamespaceResolver>
        Specified by:
        resolveNamespacePrefix in interface org.eclipse.persistence.internal.oxm.record.AbstractUnmarshalRecord<org.eclipse.persistence.internal.sessions.AbstractSession,​org.eclipse.persistence.internal.helper.DatabaseField,​XMLUnmarshaller>
        Overrides:
        resolveNamespacePrefix in class XMLRecord
      • resolveReferences

        public void resolveReferences​(org.eclipse.persistence.internal.core.sessions.CoreAbstractSession abstractSession,
                                      IDResolver idResolver)
        INTERNAL: If the UnmarshalRecord has a ReferenceResolver, tell it to resolve its references.
        Since:
        EclipseLink 2.5.0