org.apache.commons.io.monitor

## Class FileEntry

- java.lang.Object
- - org.apache.commons.io.monitor.FileEntry

All Implemented Interfaces:
  Serializable

    public class FileEntry
    extends Object
    implements Serializable

The state of a file or directory, capturing the following `File` attributes at a point in time.

- File Name (see `File.getName()`)
- Exists - whether the file exists or not (see `File.exists()`)
- Directory - whether the file is a directory or not (see `File.isDirectory()`)
- Last Modified Date/Time (see `File.lastModified()`)
- Length (see `File.length()`) - directories treated as zero
- Children - contents of a directory (see `File.listFiles(java.io.FileFilter)`)

### Custom Implementations

If the state of additional `File` attributes is required then create a custom `FileEntry` with properties for those attributes. Override the `newChildInstance(File)` to return a new instance of the appropriate type. You may also want to override the `refresh(File)` method.

Since:
  2.0
See Also:
  `FileAlterationObserver`, Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`FileEntry(File file)` Construct a new monitor for a specified `File`.
`FileEntry(FileEntry parent, File file)` Construct a new monitor for a specified `File`.

### Method Summary

All Methods Instance Methods Concrete Methods
`FileEntry[]` `getChildren()` Return the directory's files.
`File` `getFile()` Return the file being monitored.
`long` `getLastModified()` Return the last modified time from the last time it was checked.
`long` `getLength()` Return the length.
`int` `getLevel()` Return the level
`String` `getName()` Return the file name.
`FileEntry` `getParent()` Return the parent entry.
`boolean` `isDirectory()` Indicate whether the file is a directory or not.
`boolean` `isExists()` Indicate whether the file existed the last time it was checked.
`FileEntry` `newChildInstance(File file)` Create a new child instance.
`boolean` `refresh(File file)` Refresh the attributes from the `File`, indicating whether the file has changed.
`void` `setChildren(FileEntry[] children)` Set the directory's files.
`void` `setDirectory(boolean directory)` Set whether the file is a directory or not.
`void` `setExists(boolean exists)` Set whether the file existed the last time it was checked.
`void` `setLastModified(long lastModified)` Return the last modified time from the last time it was checked.
`void` `setLength(long length)` Set the length.
`void` `setName(String name)` Set the file name.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### FileEntry

    public FileEntry(File file)

Construct a new monitor for a specified `File`.

Parameters:
  `file` - The file being monitored

#### FileEntry

    public FileEntry(FileEntry parent,
                     File file)

Construct a new monitor for a specified `File`.

Parameters:
  `parent` - The parent
  `file` - The file being monitored

### Method Detail

#### refresh

    public boolean refresh(File file)

Refresh the attributes from the `File`, indicating whether the file has changed.

This implementation refreshes the `name`, `exists`, `directory`, `lastModified` and `length` properties.

The `exists`, `directory`, `lastModified` and `length` properties are compared for changes

Parameters:
  `file` - the file instance to compare to
Returns:
  `true` if the file has changed, otherwise `false`

#### newChildInstance

    public FileEntry newChildInstance(File file)

Create a new child instance.

Custom implementations should override this method to return a new instance of the appropriate type.

Parameters:
  `file` - The child file
Returns:
  a new child instance

#### getParent

    public FileEntry getParent()

Return the parent entry.

Returns:
  the parent entry

#### getLevel

    public int getLevel()

Return the level

Returns:
  the level

#### getChildren

    public FileEntry[] getChildren()

Return the directory's files.

Returns:
  This directory's files or an empty array if the file is not a directory or the directory is empty

#### setChildren

    public void setChildren(FileEntry[] children)

Set the directory's files.

Parameters:
  `children` - This directory's files, may be null

#### getFile

    public File getFile()

Return the file being monitored.

Returns:
  the file being monitored

#### getName

    public String getName()

Return the file name.

Returns:
  the file name

#### setName

    public void setName(String name)

Set the file name.

Parameters:
  `name` - the file name

#### getLastModified

    public long getLastModified()

Return the last modified time from the last time it was checked.

Returns:
  the last modified time

#### setLastModified

    public void setLastModified(long lastModified)

Return the last modified time from the last time it was checked.

Parameters:
  `lastModified` - The last modified time

#### getLength

    public long getLength()

Return the length.

Returns:
  the length

#### setLength

    public void setLength(long length)

Set the length.

Parameters:
  `length` - the length

#### isExists

    public boolean isExists()

Indicate whether the file existed the last time it was checked.

Returns:
  whether the file existed

#### setExists

    public void setExists(boolean exists)

Set whether the file existed the last time it was checked.

Parameters:
  `exists` - whether the file exists or not

#### isDirectory

    public boolean isDirectory()

Indicate whether the file is a directory or not.

Returns:
  whether the file is a directory or not

#### setDirectory

    public void setDirectory(boolean directory)

Set whether the file is a directory or not.

Parameters:
  `directory` - whether the file is a directory or not