package hudson.plugins.tfs;
import hudson.console.ConsoleNote;
import hudson.model.TaskListener;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Formatter;
import java.util.List;
public class InterceptingTaskListener implements TaskListener {
private final TaskListener victim;
private final List<String> errors = new ArrayList<String>();
private final List<String> fatalErrors = new ArrayList<String>();
public InterceptingTaskListener(final TaskListener victim) {
this.victim = victim;
}
public PrintStream getLogger() {
return victim.getLogger();
}
public void annotate(final ConsoleNote ann) throws IOException {
victim.annotate(ann);
}
public void hyperlink(final String url, final String text) throws IOException {
victim.hyperlink(url, text);
}
private static void add(final List<String> destination, final String format, final Object... args) {
final Formatter formatter = new Formatter();
formatter.format(format, args);
final String message = formatter.toString();
destination.add(message);
}
public PrintWriter error(final String msg) {
errors.add(msg);
return victim.error(msg);
}
public PrintWriter error(final String format, final Object... args) {
add(errors, format, args);
return victim.error(format, args);
}
public PrintWriter fatalError(final String msg) {
fatalErrors.add(msg);
return victim.fatalError(msg);
}
public PrintWriter fatalError(final String format, final Object... args) {
add(fatalErrors, format, args);
return victim.fatalError(format, args);
}
public List<String> getErrors() {
return errors;
}
public List<String> getFatalErrors() {
return fatalErrors;
}
}