An interface to be implemented by objects which can detect whether a reload operation is required.
This interface is used by a {@link ReloadingController} object. When areloading check is to be performed, it is delegated to a concrete implementation. The implementation decides whether (specific) criteria for a reload are fulfilled, so that the controller can react accordingly.
This interface does not define how a check for a reload is performed. This is completely up to a concrete implementation. There is just one method for executing the check and one method to notify the {@code ReloadingDetector}that the reload actually happened; this method can be used to reset the internal state so that the conditions for the next reload can be detected.
When used together with {@code ReloadingController} an implementation doesnot have to be thread-safe. The controller takes care for synchronization so that an instance is accessed by a single thread only.
@version $Id: ReloadingDetector.java 1624601 2014-09-12 18:04:36Z oheger $
@since 2.0