package java.util;

import ej.annotation.Nullable;

/**
 * A class can implement the <code>Observer</code> interface when it wants to be informed of changes
 * in observable objects.
 */
public interface Observer {

    /**
     * This method is called whenever the observed object is changed. An application calls an
     * <code>Observable</code> object's <code>notifyObservers</code> method to have all the object's
     * observers notified of the change.
     *
     * @param o
     *        the observable object.
     * @param arg
     *        an argument passed to the <code>notifyObservers</code> method.
     */
    void update(Observable o, @Nullable Object arg);
}
