# Class FileDataNode

java.lang.Object
uk.ac.starlink.datanode.nodes.DefaultDataNode
uk.ac.starlink.datanode.nodes.FileDataNode

All Implemented Interfaces:
  `DataNode`

public class FileDataNode extends DefaultDataNode
A `DataNode` representing a file or directory in the Unix file system. If the `FileDataNode` represents a directory, then its children are the files which it contains.

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

## Constructor Summary

Constructors
Constructor
Description
`FileDataNode(File file)`
Initialises a `FileDataNode` from a `File` 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).
`String`
`getName()`
Gets the name of this object.
`String`
`getNodeTLA()`
Returns either "DIR" or "FILE" for a directory or non-directory file respectively.
`String`
`getNodeType()`
Returns a short sentence indicating what kind of node this is.
`Object`
`getParentObject()`
Returns an object which is in some sense the parent of the one this node is based on.
`String`
`getPathElement()`
The `DefaultDataNode` implementation returns the label as a default path element.
`String`
`getPathSeparator()`
Returns a default separator string.
`static void`
`setShowHidden(boolean showHidden)`
Determines whether hidden files are included in the list of children of a directory file node.

### Methods inherited from class DefaultDataNode

`beep, getChildMaker, getCreator, getDataObject, getDescription, getIcon, getLabel, hasDataObject, 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

### FileDataNode

public FileDataNode(File file) throws NoSuchDataException
Initialises a `FileDataNode` from a `File` object.

Parameters:
  `file` - a `File` object representing the file from which the node is to be created
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 `DefaultDataNode`
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`.

### getParentObject

public Object getParentObject()
Description copied from interface: `DataNode`
Returns an object which is in some sense the parent of the one this node is based on. The parent is not a `DataNode`, it is something which may get fed to a `DataNodeFactory` to create `DataNode`. If no such object exists, which may well be the case, `null` should be returned.

Specified by:
  `getParentObject` in interface `DataNode`
Overrides:
  `getParentObject` in class `DefaultDataNode`
Returns:
  an object which is the parent of this one, or `null`

### 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

### getPathElement

public String getPathElement()
Description copied from class: `DefaultDataNode`
The `DefaultDataNode` implementation returns the label as a default path element.

Specified by:
  `getPathElement` in interface `DataNode`
Overrides:
  `getPathElement` in class `DefaultDataNode`
Returns:
  the node's label

### 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()
Returns either "DIR" or "FILE" for a directory or non-directory file respectively.

Specified by:
  `getNodeTLA` in interface `DataNode`
Overrides:
  `getNodeTLA` in class `DefaultDataNode`
Returns:
  a short description of the file type

### 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`

### setShowHidden

public static void setShowHidden(boolean showHidden)
Determines whether hidden files are included in the list of children of a directory file node.

Parameters:
  `showHidden` - `true` iff you want hidden files to be included in the child list

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