org.apache.commons.io.monitor
Class FileEntry

java.lang.Object
  extended by org.apache.commons.io.monitor.FileEntry
All Implemented Interfaces:
java.io.Serializable

public class FileEntry
extends java.lang.Object
implements java.io.Serializable

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

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
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
           
 
Constructor Summary
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
 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

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-2013 Apache Software Foundation