blob: 2392cebd9b6d9a91b93e33596244ffd0744f8c76 [file] [log] [blame]
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();
}
}