# Class ImageHDUDataNode

java.lang.Object
uk.ac.starlink.datanode.nodes.DefaultDataNode
uk.ac.starlink.datanode.nodes.HDUDataNode
uk.ac.starlink.datanode.nodes.ImageHDUDataNode

All Implemented Interfaces:
  `DataNode`

public class ImageHDUDataNode extends HDUDataNode
An implementation of the `DataNode` interface for representing Header and Data Units (HDUs) in FITS files.

Version:
  $Id$
Author:
  Mark Taylor (Starlink)

## Constructor Summary

Constructors
Constructor
Description
`ImageHDUDataNode(nom.tam.fits.Header hdr, FITSDataNode.ArrayDataMaker hdudata)`
Initialises an `ImageHDUDataNode` from a `Header` object.

## Method Summary

Modifier and Type
Method
Description
`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).
`Object`
`getDataObject(DataType dtype)`
The `DefaultDataNode` implementation returns any data object which has been registered using `DefaultDataNode.registerDataObject(DataType, Object)`.
`String`
`getDescription()`
Gets a concise description of this object.
`String`
`getNodeTLA()`
The `DefaultDataNode` implementation returns the string "...".
`String`
`getNodeType()`
Returns a short sentence indicating what kind of node this is.
`boolean`
`hasDataObject(DataType dtype)`
The `DefaultDataNode` implementation returns true for only those data objects which have been registered using `DefaultDataNode.registerDataObject(DataType, Object)`.

### Methods inherited from class HDUDataNode

`getHDUIndex, getHduType, getHeader, getPathElement, getPathSeparator`

### Methods inherited from class DefaultDataNode

`beep, getChildMaker, getCreator, getIcon, getLabel, getName, getParentObject, 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`

## Constructor Details

### ImageHDUDataNode

public ImageHDUDataNode(nom.tam.fits.Header hdr, FITSDataNode.ArrayDataMaker hdudata) throws NoSuchDataException
Initialises an `ImageHDUDataNode` from a `Header` object.

Parameters:
  `hdr` - a FITS header object from which the node is to be created.
  `hdudata` - an object capable of returning the array data for the image
Throws:
  `NoSuchDataException`

## Method Details

### 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 `HDUDataNode`
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 `HDUDataNode`
Parameters:
  `dv` - the detail viewer which this node is given an opportunity to configure

### 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 `HDUDataNode`
Returns:
  a short string describing this 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 `HDUDataNode`
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 `HDUDataNode`
Returns:
  a short description of the type of this `DataNode`

### hasDataObject

public boolean hasDataObject(DataType dtype)
Description copied from class: `DefaultDataNode`
The `DefaultDataNode` implementation returns true for only those data objects which have been registered using `DefaultDataNode.registerDataObject(DataType, Object)`.

Specified by:
  `hasDataObject` in interface `DataNode`
Overrides:
  `hasDataObject` in class `DefaultDataNode`
Parameters:
  `dtype` - data object type of interest
Returns:
  true iff a subsequent call of `getDataObject(type)` is likely to be successful

### getDataObject

public Object getDataObject(DataType dtype) throws DataObjectException
Description copied from class: `DefaultDataNode`
The `DefaultDataNode` implementation returns any data object which has been registered using `DefaultDataNode.registerDataObject(DataType, Object)`.

Specified by:
  `getDataObject` in interface `DataNode`
Overrides:
  `getDataObject` in class `DefaultDataNode`
Parameters:
  `dtype` - data object type of interest
Returns:
  data object of type `type`
Throws:
  `DataObjectException`