jdk-24/test/jdk/javax/xml/jaxp/testng/validation/SpecialCaseErrorHandler.java
2017-09-12 19:03:39 +02:00

55 lines
1.5 KiB
Java

package validation;
import java.util.HashMap;
import java.util.Iterator;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
public class SpecialCaseErrorHandler implements ErrorHandler {
public static final boolean DEBUG = false;
private HashMap errors;
public SpecialCaseErrorHandler(String[] specialCases) {
errors = new HashMap();
for (int i = 0; i < specialCases.length; ++i) {
errors.put(specialCases[i], Boolean.FALSE);
}
}
public void reset() {
for (Iterator iter = errors.keySet().iterator(); iter.hasNext();) {
String error = (String) iter.next();
errors.put(error, Boolean.FALSE);
}
}
public void warning(SAXParseException arg0) throws SAXException {
if (DEBUG) {
System.err.println(arg0.getMessage());
}
}
public void error(SAXParseException arg0) throws SAXException {
if (DEBUG) {
System.err.println(arg0.getMessage());
}
for (Iterator iter = errors.keySet().iterator(); iter.hasNext();) {
String error = (String) iter.next();
if (arg0.getMessage().startsWith(error)) {
errors.put(error, Boolean.TRUE);
}
}
}
public void fatalError(SAXParseException arg0) throws SAXException {
throw arg0;
}
public boolean specialCaseFound(String key) {
return ((Boolean) errors.get(key)).booleanValue();
}
}