Package uk.ac.starlink.datanode.nodes
Class TarStreamDataNode
- java.lang.Object
-
- uk.ac.starlink.datanode.nodes.DefaultDataNode
-
- uk.ac.starlink.datanode.nodes.TarStreamDataNode
-
- All Implemented Interfaces:
DataNode
public class TarStreamDataNode extends DefaultDataNode
DataNode representing a Tar archive.
-
-
Constructor Summary
Constructors Constructor Description TarStreamDataNode(uk.ac.starlink.util.DataSource datsrc)
Constructs a TarStreamDataNode from a DataSource.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
allowsChildren()
The DefaultDataNode implementation of this method returns false.java.util.Iterator
getChildIterator()
The DefaultDataNode implementation of this method throws UnsupportedOperationException (DefaultDataNode.allowsChildren()
is false).protected java.util.List
getEntriesAtLevel(java.lang.String level)
Returns a list of all the entries in this archive whose name starts with a given string.java.lang.String
getName()
Gets the name of this object.java.lang.String
getNodeTLA()
The DefaultDataNode implementation returns the string "...".java.lang.String
getNodeType()
Returns a short sentence indicating what kind of node this is.java.lang.String
getPathSeparator()
Returns a default separator string.static boolean
isMagic(byte[] magic)
Indicates whether the given bytes look like the start of a tar archive.-
Methods inherited from class uk.ac.starlink.datanode.nodes.DefaultDataNode
beep, configureDetail, getChildMaker, getCreator, getDataObject, getDescription, getIcon, getLabel, getParentObject, getPathElement, hasDataObject, makeChild, makeErrorChild, registerDataObject, setChildMaker, setCreator, setDescription, setIconID, setLabel, setName, setParentObject, toString
-
-
-
-
Constructor Detail
-
TarStreamDataNode
public TarStreamDataNode(uk.ac.starlink.util.DataSource datsrc) throws NoSuchDataException
Constructs a TarStreamDataNode from a DataSource.- Parameters:
datsrc
- the source- Throws:
NoSuchDataException
-
-
Method Detail
-
getName
public java.lang.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 interfaceDataNode
- Overrides:
getName
in classDefaultDataNode
- Returns:
- the name of the object
-
getPathSeparator
public java.lang.String getPathSeparator()
Description copied from class:DefaultDataNode
Returns a default separator string.- Specified by:
getPathSeparator
in interfaceDataNode
- Overrides:
getPathSeparator
in classDefaultDataNode
- Returns:
- "."
-
getNodeTLA
public java.lang.String getNodeTLA()
Description copied from class:DefaultDataNode
The DefaultDataNode implementation returns the string "...".- Specified by:
getNodeTLA
in interfaceDataNode
- Overrides:
getNodeTLA
in classDefaultDataNode
- Returns:
- "..."
-
getNodeType
public java.lang.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 interfaceDataNode
- Overrides:
getNodeType
in classDefaultDataNode
- Returns:
- a short description of the type of this
DataNode
-
allowsChildren
public boolean allowsChildren()
Description copied from class:DefaultDataNode
The DefaultDataNode implementation of this method returns false.- 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
-
getChildIterator
public java.util.Iterator getChildIterator()
Description copied from class:DefaultDataNode
The DefaultDataNode implementation of this method throws UnsupportedOperationException (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
.
-
getEntriesAtLevel
protected java.util.List getEntriesAtLevel(java.lang.String level) throws java.io.IOException
Returns a list of all the entries in this archive whose name starts with a given string.- Parameters:
level
- the required prefix- Returns:
- a list of all the TarArchiveEntry objects in this archive whose names begin with level. They appear in the list in the same order as they appear in the archive
- Throws:
java.io.IOException
-
isMagic
public static boolean isMagic(byte[] magic)
Indicates whether the given bytes look like the start of a tar archive.- Parameters:
magic
- a buffer of bytes containing at least the first 264 bytes of a potential tar stream- Returns:
- true if magic looks like the start of a tar stream
-
-