FileEntry (Commons IO 2.5)
Date: 2016-12-01

org.apache.commons.io.monitor

## Class FileEntry

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

- All Implemented Interfaces:
    java.io.Serializable

      public class FileEntry
      extends java.lang.Object
      implements java.io.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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private FileEntry[]` | `children`
    `private boolean` | `directory`
    `(package private) static FileEntry[]` | `EMPTY_ENTRIES`
    `private boolean` | `exists`
    `private java.io.File` | `file`
    `private long` | `lastModified`
    `private long` | `length`
    `private java.lang.String` | `name`
    `private FileEntry` | `parent`
    `private static long` | `serialVersionUID`

  - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `FileEntry[]` | `getChildren()` Return the directory's files.
    `java.io.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
    `java.lang.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(java.io.File file)` Create a new child instance.
    `boolean` | `refresh(java.io.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(java.lang.String name)` Set the file name.

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

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

- - ### Field Detail

    - #### serialVersionUID

          private static final long serialVersionUID

      See Also:
        Constant Field Values

    - #### EMPTY_ENTRIES

          static final FileEntry[] EMPTY_ENTRIES

    - #### parent

          private final FileEntry parent

    - #### children

          private FileEntry[] children

    - #### file

          private final java.io.File file

    - #### name

          private java.lang.String name

    - #### exists

          private boolean exists

    - #### directory

          private boolean directory

    - #### lastModified

          private long lastModified

    - #### length

          private long length

  - ### Constructor Detail

    - #### FileEntry

          public FileEntry(java.io.File file)

      Construct a new monitor for a specified `File`.
      Parameters:
        `file` - The file being monitored

    - #### FileEntry

          public FileEntry(FileEntry parent,
                   java.io.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(java.io.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(java.io.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 java.io.File getFile()

      Return the file being monitored.
      Returns:
        the file being monitored

    - #### getName

          public java.lang.String getName()

      Return the file name.
      Returns:
        the file name

    - #### setName

          public void setName(java.lang.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

Copyright (c) 2002-2016 Apache Software Foundation