
se.ugli.durian.j.dom.parser.XmlParserBuilder Maven / Gradle / Ivy
package se.ugli.durian.j.dom.parser;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import se.ugli.durian.j.dom.mutable.MutableNodeFactory;
import se.ugli.durian.j.dom.node.NodeFactory;
public class XmlParserBuilder {
protected ErrorHandler errorHandler;
protected NodeFactory nodeFactory;
protected SAXParser saxParser;
protected XmlParserBuilder() {
}
public static XmlParserBuilder apply() {
return new XmlParserBuilder();
}
public XmlParser build() {
if (nodeFactory == null)
nodeFactory = new MutableNodeFactory();
if (errorHandler == null)
errorHandler = new DefaultErrorHandler();
if (saxParser == null)
saxParser = getDefaultSaxParser();
return new XmlParser(nodeFactory, errorHandler, saxParser);
}
public XmlParserBuilder errorHandler(final ErrorHandler errorHandler) {
this.errorHandler = errorHandler;
return this;
}
public XmlParserBuilder nodeFactory(final NodeFactory nodeFactory) {
this.nodeFactory = nodeFactory;
return this;
}
public XmlParserBuilder saxParser(final SAXParser saxParser) {
this.saxParser = saxParser;
return this;
}
protected static SAXParser getDefaultSaxParser() {
try {
final SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
return factory.newSAXParser();
}
catch (final ParserConfigurationException | SAXException e) {
throw new XmlParserException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy