3789983e89
Reviewed-by: darcy, ihse
55 lines
1.5 KiB
Java
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();
|
|
}
|
|
}
|