/**
*
*/
package fr.unistra.pelican.util;
/**
* Interface for the disposable design pattern.
* <p>
* When the dispose function is called on a disposable object, it must freed all resources it owns, i.e.
* - calling dispose on disposable references it owns
* - closing streams
* - nulling references
* <p>
* The contract is that once the object is disposed it must not be used except from the dispose method that can be called several times.
* Calling a method or using a field of a disposed object must be considered as a programming error.
*
* @author Benjamin Perret
*
*/
public interface Disposable {
/**
* Dispose all resources owned by the object.
* After this method is called, no other method (except the dispose method) is intended to work properly on the given object.
*/
public void dispose();
}