uk.ac.starlink.datanode.nodes
Class FITSDataNode

java.lang.Object
  extended by uk.ac.starlink.datanode.nodes.DefaultDataNode
      extended by uk.ac.starlink.datanode.nodes.FITSDataNode
All Implemented Interfaces:
DataNode
Direct Known Subclasses:
FITSFileDataNode, FITSStreamDataNode

public abstract class FITSDataNode
extends DefaultDataNode

Abstract DataNode class for representing FITS objects. Subclasses are provided for FITS objects on disk or in a stream.

Author:
Mark Taylor (Starlink)

Nested Class Summary
static interface FITSDataNode.ArrayDataMaker
          Interface used for objects which can supply an ArrayDataInput object on demand (more than once if necessary).
 
Constructor Summary
FITSDataNode(DataSource datsrc)
          Constructs a FITSDataNode from a data source.
 
Method Summary
 boolean allowsChildren()
          The DefaultDataNode implementation of this method returns false.
protected abstract  FITSDataNode.ArrayDataMaker getArrayData(long start, long size)
          Returns an ArrayDataMaker encapsulating the same input stream as the on one which this FITSDataNode is based, but starting at a given offset start into the stream and size bytes long.
 Iterator getChildIterator()
          The DefaultDataNode implementation of this method throws UnsupportedOperationException (DefaultDataNode.allowsChildren() is false).
protected  ArrayDataInput getDataInput()
          Returns an ArrayDataInput object containing the data from this FITS object.
 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.
 String getPathSeparator()
          Returns a default separator string.
static boolean isMagic(byte[] buffer)
          Indicates whether a buffer of bytes looks like the start of a FITS file.
 
Methods inherited from class uk.ac.starlink.datanode.nodes.DefaultDataNode
beep, configureDetail, getChildMaker, getCreator, getDataObject, getIcon, getLabel, getParentObject, getPathElement, hasDataObject, makeChild, makeErrorChild, registerDataObject, setChildMaker, setCreator, setDescription, setIconID, setLabel, setName, setParentObject, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FITSDataNode

public FITSDataNode(DataSource datsrc)
             throws NoSuchDataException
Constructs a FITSDataNode from a data source.

Parameters:
datsrc - the source of the data
Throws:
NoSuchDataException
Method Detail

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

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

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

getArrayData

protected abstract FITSDataNode.ArrayDataMaker getArrayData(long start,
                                                            long size)
Returns an ArrayDataMaker encapsulating the same input stream as the on one which this FITSDataNode is based, but starting at a given offset start into the stream and size bytes long.

Parameters:
start - the offset into this FITSDataNode's stream at which the returned source's streams should start
size - the number of bytes contained by the returned source's stream

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.

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:
"."

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

getDataInput

protected ArrayDataInput getDataInput()
                               throws IOException
Returns an ArrayDataInput object containing the data from this FITS object.

Throws:
IOException

isMagic

public static boolean isMagic(byte[] buffer)
Indicates whether a buffer of bytes looks like the start of a FITS file.

Parameters:
buffer - the first few bytes of a potential stream
Returns:
true if buffer matches the FITS file magic number


Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.