Class PMRElementImpl

java.lang.Object
org.episteme.natural.chemistry.loaders.cml.dom.pmr.PMRNodeImpl
org.episteme.natural.chemistry.loaders.cml.dom.pmr.PMRElementImpl
All Implemented Interfaces:
Element, Node
Direct Known Subclasses:
CMLBaseImpl

public class PMRElementImpl extends PMRNodeImpl implements Element
Delegation-based implementation
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • PMRElementImpl

      protected PMRElementImpl()
      only for use by subclass constructors
    • PMRElementImpl

      protected PMRElementImpl(PMRDocument pmrDoc, String tagName)
    • PMRElementImpl

      protected PMRElementImpl(Element element, PMRDocument doc)
  • Method Details

    • getTagName

      public String getTagName()
      The name of the element. For example, in: <elementExample id="demo"> ... </elementExample> , tagName has the value "elementExample". Note that this is case-preserving in XML, as are all of the operations of the DOM. The HTML DOM returns the tagName of an HTML element in the canonical uppercase form, regardless of the case in the source HTML document.
      Specified by:
      getTagName in interface Element
    • getAttribute

      public String getAttribute(String name)
      Retrieves an attribute value by name.
      Specified by:
      getAttribute in interface Element
      Parameters:
      name - The name of the attribute to retrieve.
      Returns:
      The Attr value as a string, or the empty string if that attribute does not have a specified or default value.
    • setAttribute

      public void setAttribute(String name, String value) throws DOMException
      Adds a new attribute. If an attribute with that name is already present in the element, its value is changed to be that of the value parameter. This value is a simple string, it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an Attr node plus any Text and EntityReference nodes, build the appropriate subtree, and use setAttributeNode to assign it as the value of an attribute.
      Specified by:
      setAttribute in interface Element
      Parameters:
      name - The name of the attribute to create or alter.
      value - Value to set in string form.
      Throws:
      DOMException - INVALID_CHARACTER_ERR: Raised if the specified name contains an invalid character.
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    • removeAttribute

      public void removeAttribute(String name) throws DOMException
      Removes an attribute by name. If the removed attribute has a default value it is immediately replaced.
      Specified by:
      removeAttribute in interface Element
      Parameters:
      name - The name of the attribute to remove.
      Throws:
      DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    • getAttributeNode

      public Attr getAttributeNode(String name)
      Retrieves an Attr node by name.
      Specified by:
      getAttributeNode in interface Element
      Parameters:
      name - The name of the attribute to retrieve.
      Returns:
      The Attr node with the specified attribute name or null if there is no such attribute.
    • setAttributeNode

      public Attr setAttributeNode(Attr newAttr) throws DOMException
      Adds a new attribute. If an attribute with that name is already present in the element, it is replaced by the new one.
      Specified by:
      setAttributeNode in interface Element
      Parameters:
      newAttr - The Attr node to add to the attribute list.
      Returns:
      If the newAttr attribute replaces an existing attribute with the same name, the previously existing Attr node is returned, otherwise null is returned.
      Throws:
      DOMException - WRONG_DOCUMENT_ERR: Raised if newAttr was created from a different document than the one that created the element.
      NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
      INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an attribute of another Element object. The DOM user must explicitly clone Attr nodes to re-use them in other elements.
    • removeAttributeNode

      public Attr removeAttributeNode(Attr oldAttr) throws DOMException
      Removes the specified attribute.
      Specified by:
      removeAttributeNode in interface Element
      Parameters:
      oldAttr - The Attr node to remove from the attribute list. If the removed Attr has a default value it is immediately replaced.
      Returns:
      The Attr node that was removed.
      Throws:
      DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
      NOT_FOUND_ERR: Raised if oldAttr is not an attribute of the element.
    • getElementsByTagName

      public NodeList getElementsByTagName(String name)
      Returns a NodeList of all descendant elements with a given tag name, in the order in which they would be encountered in a preorder traversal of the Element tree.
      Specified by:
      getElementsByTagName in interface Element
      Parameters:
      name - The name of the tag to match on. The special value "*" matches all tags.
      Returns:
      A list of matching Element nodes.
    • normalize

      public void normalize()
      Puts all Text nodes in the full depth of the sub-tree underneath this Element into a "normal" form where only markup (for example, tags, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, that is , there are no adjacent Text nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer lookups) that depend on a particular document tree structure are to be used.
      Specified by:
      normalize in interface Node
      Overrides:
      normalize in class PMRNodeImpl
    • removeAttributeNS

      public void removeAttributeNS(String s, String t)
      Specified by:
      removeAttributeNS in interface Element
    • getAttributeNodeNS

      public Attr getAttributeNodeNS(String s, String t)
      Specified by:
      getAttributeNodeNS in interface Element
    • setAttributeNodeNS

      public Attr setAttributeNodeNS(Attr attr)
      Specified by:
      setAttributeNodeNS in interface Element
    • hasAttributeNS

      public boolean hasAttributeNS(String s, String t)
      Specified by:
      hasAttributeNS in interface Element
    • hasAttribute

      public boolean hasAttribute(String s)
      Specified by:
      hasAttribute in interface Element
    • setAttributeNS

      public void setAttributeNS(String s, String t, String v)
      Specified by:
      setAttributeNS in interface Element
    • getAttributeNS

      public String getAttributeNS(String s, String t)
      Specified by:
      getAttributeNS in interface Element
    • getSchemaTypeInfo

      public TypeInfo getSchemaTypeInfo()
      The type information associated with this element.
      Specified by:
      getSchemaTypeInfo in interface Element
      Since:
      DOM Level 3
    • setIdAttribute

      public void setIdAttribute(String name, boolean isId) throws DOMException
      If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute . This affects the value of Attr.isId and the behavior of Document.getElementById, but does not change any schema that may be in use, in particular this does not affect the Attr.schemaTypeInfo of the specified Attr node. Use the value false for the parameter isId to undeclare an attribute for being a user-determined ID attribute.
      To specify an attribute by local name and namespace URI, use the setIdAttributeNS method.
      Specified by:
      setIdAttribute in interface Element
      Parameters:
      name - The name of the attribute.
      isId - Whether the attribute is a of type ID.
      Throws:
      DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
      NOT_FOUND_ERR: Raised if the specified node is not an attribute of this element.
      Since:
      DOM Level 3
    • setIdAttributeNS

      public void setIdAttributeNS(String namespaceURI, String localName, boolean isId) throws DOMException
      If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute . This affects the value of Attr.isId and the behavior of Document.getElementById, but does not change any schema that may be in use, in particular this does not affect the Attr.schemaTypeInfo of the specified Attr node. Use the value false for the parameter isId to undeclare an attribute for being a user-determined ID attribute.
      Specified by:
      setIdAttributeNS in interface Element
      Parameters:
      namespaceURI - The namespace URI of the attribute.
      localName - The local name of the attribute.
      isId - Whether the attribute is a of type ID.
      Throws:
      DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
      NOT_FOUND_ERR: Raised if the specified node is not an attribute of this element.
      Since:
      DOM Level 3
    • setIdAttributeNode

      public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException
      If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute . This affects the value of Attr.isId and the behavior of Document.getElementById, but does not change any schema that may be in use, in particular this does not affect the Attr.schemaTypeInfo of the specified Attr node. Use the value false for the parameter isId to undeclare an attribute for being a user-determined ID attribute.
      Specified by:
      setIdAttributeNode in interface Element
      Parameters:
      idAttr - The attribute node.
      isId - Whether the attribute is a of type ID.
      Throws:
      DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
      NOT_FOUND_ERR: Raised if the specified node is not an attribute of this element.
      Since:
      DOM Level 3
    • getElementsByTagNameNS

      public NodeList getElementsByTagNameNS(String s, String t)
      NOT YET IMPLEMENTED
      Specified by:
      getElementsByTagNameNS in interface Element