/*
* interface: RecordListenerManager
*
* Version $Id: RecordListenerManager.java 8584 2006-08-10 23:06:37Z duns $
*
* Date: March 7 2003
*
* (c) 2003 IceCube Collaboration
*/
package org.freehep.record.loop.event;
import java.util.TooManyListenersException;
/**
This interface should be implemented by any class that can register
single <code>{@link RecordListener}</code> objects.
*
* @version $Id: RecordListenerManager.java 8584 2006-08-10 23:06:37Z duns $
* @author patton
*/
public interface RecordListenerManager
{
// public static final member data
// instance member function (alphabetic)
/**
* Adds the specified RecordListener to this object.
*
* @param listener the RecordListener to add.
* @throws TooManyListenersException if a listener is already present.
* @see #removeRecordListener
*/
public void addRecordListener(RecordListener listener)
throws TooManyListenersException;
/**
* Returns this objects RecordListener if there is one.
*
* @return this objects RecordListener if there is one.
*/
public RecordListener getRecordListener();
/**
* Removes the specified listener from this object if it is this objects
* listener, otherwise it does nothing.
*
* If removed, a finish event is sent to the listener if it has been
* configured so that is can clean up any resources it holds.
*
* @param listener the RecordListener to remove.
* @see #addRecordListener
*/
public void removeRecordListener(RecordListener listener);
// static member functions (alphabetic)
}