import java.util.List; // Sample Simple.
/**
* O teorema do "soh vou frequentar um único ambiente de ensino virtual". e escola da vida e a WEB? transformando o ambiente de "aprendizado WEB" uma simulação "excitante'"
* Thus, the InstanceManagerPattern.
* An instance manager is a class/object which serves to manage instance(s)
* of some other type of object, and provide a point of access to the instances
* being managed. Such a class should generally have the following methods:
* Ability to set the number of instances being managed
* Ability to place an instance of whatever is being managed under management.
* (Note that the ability to construct instances of the singleton is not constrained,
* just the ability to manage them).
* Ability to look up one or more instances (via a key) of the managed object(s).
* If only one managed object, then a key is not necessary.
* Optionally, the ability to remove an object from management
* (which does not cause the object's destruction).
* @author josecanovamauger
*
* @param <T> The T - Document Type.
* @param <K> an K - Key instance.
@param <S> a Source of the
*/
public interface DocumentManager <T,K,S>{
public T createDocument (S document);
public List<T> getDocuments (K key);
public T getDocument(K key); // throws unicity exception...
public void deleteDocument(K key);
}