1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
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();
}
}
|