# Class VOComponentDataNode

java.lang.Object
uk.ac.starlink.datanode.nodes.DefaultDataNode
uk.ac.starlink.datanode.nodes.VOComponentDataNode

All Implemented Interfaces:
  `DataNode`

Direct Known Subclasses:
  `VOTableTableDataNode`

public class VOComponentDataNode extends DefaultDataNode
Generic node for representing VOTable elements.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final String`
`systemId`
`protected final uk.ac.starlink.votable.VOElement`
`vocel`

## Constructor Summary

Constructors
Modifier
Constructor
Description
``
`VOComponentDataNode(Source xsrc)`
`protected`
`VOComponentDataNode(Source xsrc, String elname)`

## Method Summary

Modifier and Type
Method
Description
`static void`
`addVOComponentViews(DetailViewer dv, uk.ac.starlink.votable.VOElement voel)`
`boolean`
`allowsChildren()`
The `DefaultDataNode` implementation of this method returns `false`.
`void`
`configureDetail(DetailViewer dv)`
No custom configuration is performed.
`Iterator`
`getChildIterator()`
The `DefaultDataNode` implementation of this method throws `UnsupportedOperationException` (`DefaultDataNode.allowsChildren()` is false).
`DataNodeFactory`
`getChildMaker()`
Gets the factory which should in general be used to generate descendant nodes.
`String`
`getDescription()`
Gets a concise description of this object.
`String`
`getName()`
Gets the name of this object.
`String`
`getNodeTLA()`
The `DefaultDataNode` implementation returns the string "...".
`String`
`getNodeType()`
Returns a short sentence indicating what kind of node this is.
`Object`
`getParentObject()`
Returns an object which is in some sense the parent of the one this node is based on.
`String`
`getPathSeparator()`
Returns a default separator string.
`static DOMSource`
`getSource(uk.ac.starlink.votable.VOElement voel)`
Returns a DOM source associated with a given VO Element.

### Methods inherited from class DefaultDataNode

`beep, getCreator, getDataObject, getIcon, getLabel, getPathElement, hasDataObject, makeChild, makeErrorChild, registerDataObject, setChildMaker, setCreator, setDescription, setIconID, setLabel, setName, setParentObject, toString`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### vocel

protected final uk.ac.starlink.votable.VOElement vocel

### systemId

protected final String systemId

## Constructor Details

### VOComponentDataNode

public VOComponentDataNode(Source xsrc) throws NoSuchDataException

Throws:
  `NoSuchDataException`

### VOComponentDataNode

protected VOComponentDataNode(Source xsrc, String elname) throws NoSuchDataException

Throws:
  `NoSuchDataException`

## Method Details

### getName

public String getName()
Description copied from interface: `DataNode`
Gets the name of this object. This is an intrinsic property of the object.

Specified by:
  `getName` in interface `DataNode`
Overrides:
  `getName` in class `DefaultDataNode`
Returns:
  the name of the object

### getNodeTLA

public String getNodeTLA()
Description copied from class: `DefaultDataNode`
The `DefaultDataNode` implementation returns the string "...".

Specified by:
  `getNodeTLA` in interface `DataNode`
Overrides:
  `getNodeTLA` in class `DefaultDataNode`
Returns:
  "..."

### getNodeType

public String getNodeType()
Description copied from interface: `DataNode`
Returns a short sentence indicating what kind of node this is. The return value should be just a few words. As a rough guideline it should indicate what the implementing class is.

Specified by:
  `getNodeType` in interface `DataNode`
Overrides:
  `getNodeType` in class `DefaultDataNode`
Returns:
  a short description of the type of this `DataNode`

### getPathSeparator

public String getPathSeparator()
Description copied from class: `DefaultDataNode`
Returns a default separator string.

Specified by:
  `getPathSeparator` in interface `DataNode`
Overrides:
  `getPathSeparator` in class `DefaultDataNode`
Returns:
  "."

### getParentObject

public Object getParentObject()
Description copied from interface: `DataNode`
Returns an object which is in some sense the parent of the one this node is based on. The parent is not a `DataNode`, it is something which may get fed to a `DataNodeFactory` to create `DataNode`. If no such object exists, which may well be the case, `null` should be returned.

Specified by:
  `getParentObject` in interface `DataNode`
Overrides:
  `getParentObject` in class `DefaultDataNode`
Returns:
  an object which is the parent of this one, or `null`

### getDescription

public String getDescription()
Description copied from interface: `DataNode`
Gets a concise description of this object. The form of the description will depend on the type of node, but it might detail the shape or type of data represented, or otherwise give some information additional to the name. It should not include the return value of the `getName` method, since they may be presented together. It should be on one line, and preferably no longer than around 70 characters. The `null` value may be returned if there is nothing to say.

Specified by:
  `getDescription` in interface `DataNode`
Overrides:
  `getDescription` in class `DefaultDataNode`
Returns:
  a short string describing this object

### getChildMaker

public DataNodeFactory getChildMaker()
Description copied from interface: `DataNode`
Gets the factory which should in general be used to generate descendant nodes.

Specified by:
  `getChildMaker` in interface `DataNode`
Overrides:
  `getChildMaker` in class `DefaultDataNode`
Returns:
  the factory used for generating children

### allowsChildren

public boolean allowsChildren()
Description copied from class: `DefaultDataNode`
The `DefaultDataNode` implementation of this method returns `false`.

Specified by:
  `allowsChildren` in interface `DataNode`
Overrides:
  `allowsChildren` in class `DefaultDataNode`
Returns:
  `true` if the node is of a type which can have child nodes, `false` otherwise

### getChildIterator

public Iterator getChildIterator()
Description copied from class: `DefaultDataNode`
The `DefaultDataNode` implementation of this method throws `UnsupportedOperationException` (`DefaultDataNode.allowsChildren()` is false).

Specified by:
  `getChildIterator` in interface `DataNode`
Overrides:
  `getChildIterator` in class `DefaultDataNode`
Returns:
  an `Iterator` over the children. Each object iterated over should be a `DataNode`. Behaviour is undefined if this method is called on an object for which `allowsChildren` returns `false`.

### configureDetail

public void configureDetail(DetailViewer dv)
Description copied from class: `DefaultDataNode`
No custom configuration is performed.

Specified by:
  `configureDetail` in interface `DataNode`
Overrides:
  `configureDetail` in class `DefaultDataNode`
Parameters:
  `dv` - the detail viewer which this node is given an opportunity to configure

### addVOComponentViews

public static void addVOComponentViews(DetailViewer dv, uk.ac.starlink.votable.VOElement voel)

### getSource

public static DOMSource getSource(uk.ac.starlink.votable.VOElement voel)
Returns a DOM source associated with a given VO Element.

Parameters:
  `voel` - element
Returns:
  source