package util;

import java.util.EventListener;

/**
  * A listener that can be helped by ListenerHelper. HelpableListeners must use a ListenerHelper to maintain
  * their list of listeners. Whenever a query is performed on the HelpableListener it must assure
  * up-to-date-ness of its model by calling (@link ListenerHelper#needModelUpdate}.
  *
  * @see ListenerHelper
  *
  * @author Steffen Zschaler
  * @version 2.0 02/06/1999
  * @since v2.0
  */
public interface HelpableListener extends EventListener {

  /**
    * Called when the listener should subscribe to its own event source.
    *
    * @override Always
    */
  public void subscribe();

  /**
    * Called when the listener should unsubscribe from its own event source.
    *
    * @override Always
    */
  public void unsubscribe();

  /**
    * Called to update the listeners own model representation.
    *
    * @override Always
    */
  public void updateModel();

}