package fitnesse.testsystems;
import java.util.LinkedList;
import java.util.List;
public class CompositeExecutionLogListener implements ExecutionLogListener {
private final List<ExecutionLogListener> listeners = new LinkedList<>();
public final void addExecutionLogListener(ExecutionLogListener listener) {
listeners.add(listener);
}
protected final List<ExecutionLogListener> listeners() {
return listeners;
}
@Override
public void commandStarted(ExecutionContext context) {
for (ExecutionLogListener listener : listeners)
listener.commandStarted(context);
}
@Override
public void stdOut(String output) {
for (ExecutionLogListener listener : listeners)
listener.stdOut(output);
}
@Override
public void stdErr(String output) {
for (ExecutionLogListener listener : listeners)
listener.stdErr(output);
}
@Override
public void exitCode(int exitCode) {
for (ExecutionLogListener listener : listeners)
listener.exitCode(exitCode);
}
@Override
public void exceptionOccurred(Throwable e) {
for (ExecutionLogListener listener : listeners)
listener.exceptionOccurred(e);
}
}