Class VOElement

All Implemented Interfaces:
Element, Node
Direct Known Subclasses:
FieldElement, FieldRefElement, GroupElement, LinkElement, ParamRefElement, TableElement, TimesysElement, ValuesElement

public class VOElement extends DelegatingElement
Element implementation for use within VOTable documents. This implements the DOM Element interface, and so can be used just as a normal DOM element (including adding/removing/editing nodes). However, it also provides a few extra convenience methods, some of which are based on knowledge of the nature of the elements within a VOTable document.

This class is extended to provide the classes associated with specific VOTable elements. These in turn provide more additional methods associated with the specific properties of such elements, for instance the TableElement class has a getData which returns the actual table cell data. Those element types which don't require any extra associated functionality (such as RESOURCE) don't have their own subclass, they are just represented as VOElements. The class of each element in the DOM is determined by its tag name - so every TABLE element will be represented in the DOM as a TableElement and so on.

Author:
Mark Taylor (Starlink)
  • Method Details

    • getDescription

      public String getDescription()
      Returns the text of a DESCRIPTION element associated with this object, or null if none exists. The return value is a plain text string - any XML tags (XHTML is allowed in the VOTable1.1 DESCRIPTION content model) are stripped out. If you want the full XML structure of the DESCRIPTION tag, use instead getChildByName("DESCRIPTION").
      Returns:
      the description
    • getID

      public String getID()
      Returns the ID attribute value for this element, or null if none exists.
      Returns:
      the ID
    • getName

      public String getName()
      Returns the name attribute value for this element, or null if none exists.
      Returns:
      the name
    • getParent

      public VOElement getParent()
      Returns the parent element of this element as a VOElement. Note that the returned object is not guaranteed to be one of the elements in the VOTable DTD. If this element is at the root of the document, null will be returned.
      Returns:
      parent VOElement
    • getChildren

      public VOElement[] getChildren()
      Returns the child elements of this element. Each is returned as an instance of VOElement or one of its specific subclasses.
      Returns:
      an array of VOElement children of this one
    • getChildrenByName

      public VOElement[] getChildrenByName(String votagname)
      Returns all the child elements of this element which have a given name in the VOTable namespace. Each is returned as a VOElement or the appropriate specific VOElement subclass.

      Note that since STIL v2.8, but not before, the namespacing of the argument to this method is influenced by the default Namespacing class.

      Parameters:
      votagname - the unqualified element name in the VOTable namespace required (such as "TABLE")
      Returns:
      an array of VOElement children of this one, all with element name tagname
    • getChildByName

      public VOElement getChildByName(String votagname)
      Returns the first child element of this element which has a given name in the VOTable namespace. If there are more than one with the given name, later ones are ignored. If there are none, null is returned. The element is returned as a VOElement or the appropriate specific VOElement subclass.

      Note that since STIL v2.8, but not before, the namespacing of the argument to this method is influenced by the default Namespacing class.

      Parameters:
      votagname - the unqualified element name in the VOTable namespace required (such as "TABLE")
      Returns:
      the first child of this one with element name tagname
    • toString

      public String toString()
      Returns the same value as getHandle().
      Overrides:
      toString in class Object
      Returns:
      a string representation of this object
    • getHandle

      public String getHandle()
      Returns something that can be used informally as a name for this element. May be ID or something other than the value of the name attribute itself if no name exists.
      Returns:
      a label for this element
    • getSystemId

      public String getSystemId()
      Returns any system ID associated with this node. It is the system ID (basically, a relative or absolute location) of the owner document.
      Returns:
      system ID
    • getVOTagName

      public String getVOTagName()
      Returns the name of this element in the VOTable namespace.
      Returns:
      unqualified VOTable element name for this element, such as "TABLE"
    • getElementSequence

      public int getElementSequence()
      Returns the number of elements with the same tag name as this one which were present in the document when this one was added to it.
      Returns:
      sequence number of this element among similarly named ones
    • getReferencedElement

      public VOElement getReferencedElement(String refAtt, String votagname)
      Returns an element from the same document whose ID-typed attribute matches the value of a given (reference) attribute of this element. The result is constrained to have a particular tag name; if no such element exists, null is returned.
      Parameters:
      refAtt - name of referencing attribute of this element
      votagname - the unqualified element name in the VOTable namespace required (such as "TABLE")
      Returns:
      element with required tag name, or null
    • getElementsByVOTagName

      public NodeList getElementsByVOTagName(String voTagName)
      Returns a NodeList of all descendant Elements with a given unqualified tag name in the VOTable namespace, in the order in which they are encountered in a preorder traversal of this Element tree. This does the same as Element.getElementsByTagName(java.lang.String), but takes care of VOTable namespacing issues; calling it with the argument "TABLE" will find all VOTable TABLE descendants.
      Parameters:
      voTagName - unqualified element name in VOTable namespace
      Returns:
      list of matching element nodes