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
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
Nested Classes Modifier and Type Class Description static interfaceFITSDataNode.ArrayDataMakerInterface used for objects which can supply an ArrayDataInput object on demand (more than once if necessary).
-
Constructor Summary
Constructors Constructor Description FITSDataNode(uk.ac.starlink.util.DataSource datsrc)Constructs a FITSDataNode from a data source.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleanallowsChildren()The DefaultDataNode implementation of this method returns false.protected abstract FITSDataNode.ArrayDataMakergetArrayData(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.java.util.IteratorgetChildIterator()The DefaultDataNode implementation of this method throws UnsupportedOperationException (DefaultDataNode.allowsChildren()is false).protected nom.tam.util.ArrayDataInputgetDataInput()Returns an ArrayDataInput object containing the data from this FITS object.java.lang.StringgetDescription()Gets a concise description of this object.java.lang.StringgetName()Gets the name of this object.java.lang.StringgetNodeTLA()The DefaultDataNode implementation returns the string "...".java.lang.StringgetNodeType()Returns a short sentence indicating what kind of node this is.java.lang.StringgetPathSeparator()Returns a default separator string.static booleanisMagic(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 Detail
-
FITSDataNode
public FITSDataNode(uk.ac.starlink.util.DataSource datsrc) throws NoSuchDataExceptionConstructs a FITSDataNode from a data source.- Parameters:
datsrc- the source of the data- Throws:
NoSuchDataException
-
-
Method Detail
-
getName
public java.lang.String getName()
Description copied from interface:DataNodeGets the name of this object. This is an intrinsic property of the object.- Specified by:
getNamein interfaceDataNode- Overrides:
getNamein classDefaultDataNode- Returns:
- the name of the object
-
getDescription
public java.lang.String getDescription()
Description copied from interface:DataNodeGets 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 thegetNamemethod, since they may be presented together. It should be on one line, and preferably no longer than around 70 characters. Thenullvalue may be returned if there is nothing to say.- Specified by:
getDescriptionin interfaceDataNode- Overrides:
getDescriptionin classDefaultDataNode- Returns:
- a short string describing this object
-
allowsChildren
public boolean allowsChildren()
Description copied from class:DefaultDataNodeThe DefaultDataNode implementation of this method returns false.- Specified by:
allowsChildrenin interfaceDataNode- Overrides:
allowsChildrenin classDefaultDataNode- Returns:
trueif the node is of a type which can have child nodes,falseotherwise
-
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 startsize- the number of bytes contained by the returned source's stream
-
getChildIterator
public java.util.Iterator getChildIterator()
Description copied from class:DefaultDataNodeThe DefaultDataNode implementation of this method throws UnsupportedOperationException (DefaultDataNode.allowsChildren()is false).- Specified by:
getChildIteratorin interfaceDataNode- Overrides:
getChildIteratorin classDefaultDataNode- Returns:
- an
Iteratorover the children. Each object iterated over should be aDataNode. Behaviour is undefined if this method is called on an object for whichallowsChildrenreturnsfalse.
-
getPathSeparator
public java.lang.String getPathSeparator()
Description copied from class:DefaultDataNodeReturns a default separator string.- Specified by:
getPathSeparatorin interfaceDataNode- Overrides:
getPathSeparatorin classDefaultDataNode- Returns:
- "."
-
getNodeTLA
public java.lang.String getNodeTLA()
Description copied from class:DefaultDataNodeThe DefaultDataNode implementation returns the string "...".- Specified by:
getNodeTLAin interfaceDataNode- Overrides:
getNodeTLAin classDefaultDataNode- Returns:
- "..."
-
getNodeType
public java.lang.String getNodeType()
Description copied from interface:DataNodeReturns 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:
getNodeTypein interfaceDataNode- Overrides:
getNodeTypein classDefaultDataNode- Returns:
- a short description of the type of this
DataNode
-
getDataInput
protected nom.tam.util.ArrayDataInput getDataInput() throws java.io.IOExceptionReturns an ArrayDataInput object containing the data from this FITS object.- Throws:
java.io.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
-
-