package com.onelogin.saml2.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;
public class XMLErrorAccumulatorHandler extends DefaultHandler {
// TODO Not only SAXException, errorXML --> error
private final Logger LOG = LoggerFactory.getLogger(XMLErrorAccumulatorHandler.class);
private final List<Exception> errorXML = new ArrayList<Exception>();
@Override
public void error(SAXParseException e) throws SAXException {
errorXML.add(e);
LOG.debug("ERROR parsing xml: " + (e.getMessage()));
}
@Override
public void fatalError(SAXParseException e) throws SAXException {
errorXML.add(e);
LOG.debug("FATALERROR parsing xml: " + (e.getMessage()));
}
@Override
public void warning(SAXParseException e) throws SAXException {
errorXML.add(e);
LOG.debug("WARNING parsing xml: " + (e.getMessage()));
}
public List<Exception> getErrorXML() {
return Collections.unmodifiableList(errorXML);
}
public boolean hasError() {
return !errorXML.isEmpty();
}
}