A specialized implementation of {@code ReloadingDetector} which monitors afile specified by a {@link FileHandler}.
An instance of this class is passed a {@code FileHandler} at constructiontime. Each time the {@code isReloadingRequired()} method is called, it checkswhether the {@code FileHandler} points to a valid location. If this is thecase, the file's last modification time is obtained and compared with the last stored time. If it has changed, a reload operation should be performed.
Because file I/O may be expensive it is possible to configure a refresh delay as a time in milliseconds. This is the minimum interval between two checks. If the {@code isReloadingRequired()} method is called in shorter intervals,it does not perform a check, but directly returns false.
To initialize an instance either {@code isReloadingRequired()} or{@code reloadingPerformed()} can be called. The first call of{@code isReloadingRequired} does not perform a check, but obtains the initialmodification date of the monitored file. {@code reloadingPerformed()} alwaysobtains the file's modification date and stores it internally.
@version $Id: FileHandlerReloadingDetector.java 1624601 2014-09-12 18:04:36Z oheger $
@since 2.0