package org.jbehave.core.failures;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
@SuppressWarnings("serial")
public class BatchFailures extends HashMap<String, Throwable> {
private final boolean verbose;
public BatchFailures(){
this(false);
}
public BatchFailures(boolean verbose) {
this.verbose = verbose;
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
for (String name : keySet()) {
Throwable failure = get(name);
sb.append("\n");
sb.append(name);
sb.append(": ");
sb.append( verbose ? stackTraceOf(failure) : failure);
}
return sb.toString();
}
private String stackTraceOf(Throwable failure) {
StringWriter writer = new StringWriter();
failure.printStackTrace(new PrintWriter(writer));
return writer.toString();
}
}