Class DOMRecord

java.lang.Object
org.eclipse.persistence.internal.core.sessions.CoreAbstractRecord
org.eclipse.persistence.internal.sessions.AbstractRecord
org.eclipse.persistence.oxm.record.XMLRecord
org.eclipse.persistence.oxm.record.DOMRecord
All Implemented Interfaces:
Serializable, Cloneable, 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:
  • Constructor Details

    • DOMRecord

      public DOMRecord()
      INTERNAL: Default constructor.
    • DOMRecord

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

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

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

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

      public DOMRecord(String localRootElementName, NamespaceResolver namespaceResolver, 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(Element element)
      INTERNAL: Create a record with the element.
    • DOMRecord

      public DOMRecord(Node node)
    • DOMRecord

      public DOMRecord(Document document)
      INTERNAL: Create a record with the element.
  • Method Details

    • getLocalName

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

      public 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.
    • setReferenceResolver

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

      public void add(org.eclipse.persistence.internal.helper.DatabaseField key, 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 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 Node createNewDocument(String defaultRootElementName)
      INTERNAL: Creates a new Document and returns the root element of that document
    • createNewDocument

      public Node createNewDocument(String defaultRootElementName, String namespaceURI)
      INTERNAL: Creates a new Document and returns the root element of that document
    • getDocument

      public 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(Object value)
      PUBLIC: Check if the value is contained in the row.
      Overrides:
      contains in class XMLRecord
    • get

      public 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 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 Object getIndicatingNoEntry(org.eclipse.persistence.internal.helper.DatabaseField key, boolean shouldReturnNode)
    • getIndicatingNoEntry

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

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

      public 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 Object getValues(org.eclipse.persistence.internal.helper.DatabaseField key, AbstractNullPolicy nullPolicy)
    • getValuesIndicatingNoEntry

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

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

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

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

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

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

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

      public 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 Object put(org.eclipse.persistence.internal.helper.DatabaseField key, 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 Object put(List<XMLField> xmlFields, List<XMLEntry> values)
    • put

      public Object put(Object key, Object value) throws ValidationException
      Description copied from class: org.eclipse.persistence.internal.sessions.AbstractRecord
      PUBLIC: Add the field-value pair to the row.
      Specified by:
      put in interface 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 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(Object value, int index)
      INTERNAL: replaces the value at index with value
      Overrides:
      replaceAt in class org.eclipse.persistence.internal.sessions.AbstractRecord
    • entrySet

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

      protected void setFields(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 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 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(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(Node element)
      INTERNAL: Sets the dom and updated document to be the owner document of the given element
    • setDOM

      public void setDOM(Element element)
    • toString

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

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

      public Collection values()
      PUBLIC: Return the collection of element values from the DOM.
      Specified by:
      values in interface 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 Map
      Overrides:
      size in class org.eclipse.persistence.internal.sessions.AbstractRecord
    • transformFromXML

      public void transformFromXML(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(Reader reader)
      Set the XML from an XML reader.
    • transformToXML

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

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

      public String resolveNamespacePrefix(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.