package org.obo.app.model;
import java.util.Collection;
/**
* An object which observes properties of some other class of object.
* @author Jim Balhoff
*
* @param <T> The class of objects to be observed.
*/
public interface Observer<T extends PropertyChangeObject> {
/**
* Begin observing changes to this object.
*/
public void startObserving(T object);
/**
* Begin observing changes to each object in this collection.
*/
public void startObserving(Collection<T> objects);
/**
* Stop observing changes to this object.
*/
public void stopObserving(T object);
/**
* Stop observing changes to each object in this collection.
*/
public void stopObserving(Collection<T> objects);
}