Package uk.ac.starlink.datanode.nodes
Class FITSDataNode
java.lang.Object
uk.ac.starlink.datanode.nodes.DefaultDataNode
uk.ac.starlink.datanode.nodes.FITSDataNode
- All Implemented Interfaces:
DataNode
- Direct Known Subclasses:
FITSFileDataNode
,FITSStreamDataNode
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
Nested ClassesModifier and TypeClassDescriptionstatic interface
Interface used for objects which can supply an ArrayDataInput object on demand (more than once if necessary). -
Constructor Summary
ConstructorsConstructorDescriptionFITSDataNode
(uk.ac.starlink.util.DataSource datsrc) Constructs a FITSDataNode from a data source. -
Method Summary
Modifier and TypeMethodDescriptionboolean
TheDefaultDataNode
implementation of this method returnsfalse
.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 offsetstart
into the stream andsize
bytes long.TheDefaultDataNode
implementation of this method throwsUnsupportedOperationException
(DefaultDataNode.allowsChildren()
is false).protected nom.tam.util.ArrayDataInput
Returns an ArrayDataInput object containing the data from this FITS object.Gets a concise description of this object.getName()
Gets the name of this object.TheDefaultDataNode
implementation returns the string "...".Returns a short sentence indicating what kind of node this is.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
-
Constructor Details
-
FITSDataNode
Constructs a FITSDataNode from a data source.- Parameters:
datsrc
- the source of the data- Throws:
NoSuchDataException
-
-
Method Details
-
getName
Description copied from interface:DataNode
Gets the name of this object. This is an intrinsic property of the object.- Specified by:
getName
in interfaceDataNode
- Overrides:
getName
in classDefaultDataNode
- Returns:
- the name of the object
-
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 thegetName
method, since they may be presented together. It should be on one line, and preferably no longer than around 70 characters. Thenull
value may be returned if there is nothing to say.- Specified by:
getDescription
in interfaceDataNode
- Overrides:
getDescription
in classDefaultDataNode
- Returns:
- a short string describing this object
-
allowsChildren
public boolean allowsChildren()Description copied from class:DefaultDataNode
TheDefaultDataNode
implementation of this method returnsfalse
.- Specified by:
allowsChildren
in interfaceDataNode
- Overrides:
allowsChildren
in classDefaultDataNode
- Returns:
true
if the node is of a type which can have child nodes,false
otherwise
-
getArrayData
Returns an ArrayDataMaker encapsulating the same input stream as the on one which this FITSDataNode is based, but starting at a given offsetstart
into the stream andsize
bytes long.- Parameters:
start
- the offset into this FITSDataNode's stream at which the returned source's streams should startsize
- the number of bytes contained by the returned source's stream
-
getChildIterator
Description copied from class:DefaultDataNode
TheDefaultDataNode
implementation of this method throwsUnsupportedOperationException
(DefaultDataNode.allowsChildren()
is false).- Specified by:
getChildIterator
in interfaceDataNode
- Overrides:
getChildIterator
in classDefaultDataNode
- Returns:
- an
Iterator
over the children. Each object iterated over should be aDataNode
. Behaviour is undefined if this method is called on an object for whichallowsChildren
returnsfalse
.
-
getPathSeparator
Description copied from class:DefaultDataNode
Returns a default separator string.- Specified by:
getPathSeparator
in interfaceDataNode
- Overrides:
getPathSeparator
in classDefaultDataNode
- Returns:
- "."
-
getNodeTLA
Description copied from class:DefaultDataNode
TheDefaultDataNode
implementation returns the string "...".- Specified by:
getNodeTLA
in interfaceDataNode
- Overrides:
getNodeTLA
in classDefaultDataNode
- Returns:
- "..."
-
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 interfaceDataNode
- Overrides:
getNodeType
in classDefaultDataNode
- Returns:
- a short description of the type of this
DataNode
-
getDataInput
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
-