package lejos.pc.comm;
import java.util.ArrayList;
/**
* Abstract class that allows inheriting class to register and use log listeners.
*
* @author Lawrie Griffiths and Matthias Paul Scholz
*
*/
public abstract class NXTCommLoggable {
protected ArrayList<NXTCommLogListener> fLogListeners;
public NXTCommLoggable() {
fLogListeners = new ArrayList<NXTCommLogListener>();
}
/**
* register log listener
*
* @param listener the log listener
*/
public void addLogListener(NXTCommLogListener listener) {
fLogListeners.add(listener);
}
/**
* unregister log listener
*
* @param listener the log listener
*/
public void removeLogListener(NXTCommLogListener listener) {
fLogListeners.remove(listener);
}
/**
* Log an exception to all the log listeners
*
* @param t a Throwable
*/
protected void log(Throwable t) {
for (NXTCommLogListener listener : fLogListeners) {
listener.logEvent(t);
}
}
/**
* Log a message to all the log listeners
*
* @param s the message
*/
protected void log(String s) {
for (NXTCommLogListener listener : fLogListeners) {
listener.logEvent(s);
}
}
}