blob: deb99c80566154742c1c73542b72ef04be9b4ef8 [file] [log] [blame]
package tests.org.w3c.dom;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
public class DOMDocumentBuilderFactory {
/**
* Parser configuration
*/
private DocumentBuilderSetting[] settings = null;
private DocumentBuilder builder = null;
private DocumentBuilderFactory factory = null;
public DOMDocumentBuilderFactory(DocumentBuilderSetting[] settings) {
if (settings == null) {
settings = new DocumentBuilderSetting[0];
} else {
settings = (DocumentBuilderSetting[]) settings.clone();
}
factory = DocumentBuilderFactory.newInstance();
if (factory == null) {
throw new RuntimeException("DocumentBuilderFactory must not be null");
}
if (settings != null) {
for (int i = 0; i < settings.length; i++) {
settings[i].applySetting(factory);
}
}
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
if (builder == null) {
throw new RuntimeException("DocumentBuilder must not be null");
}
}
public DocumentBuilder getBuilder() {
return builder;
}
public boolean hasFeature(String feature, String version) {
return builder.getDOMImplementation().hasFeature(feature, version);
}
public boolean isCoalescing() {
return factory.isCoalescing();
}
public boolean isExpandEntityReferences() {
return factory.isExpandEntityReferences();
}
public boolean isIgnoringElementContentWhitespace() {
return factory.isIgnoringElementContentWhitespace();
}
public boolean isNamespaceAware() {
return factory.isNamespaceAware();
}
public boolean isValidating() {
return factory.isValidating();
}
public static DocumentBuilderSetting[] getConfiguration1() {
return new DocumentBuilderSetting[] {
DocumentBuilderSetting.notCoalescing,
DocumentBuilderSetting.notExpandEntityReferences,
DocumentBuilderSetting.notIgnoringElementContentWhitespace,
DocumentBuilderSetting.notNamespaceAware,
DocumentBuilderSetting.notValidating };
}
public static DocumentBuilderSetting[] getConfiguration2() {
return new DocumentBuilderSetting[] {
DocumentBuilderSetting.notCoalescing,
DocumentBuilderSetting.notExpandEntityReferences,
DocumentBuilderSetting.notIgnoringElementContentWhitespace,
DocumentBuilderSetting.namespaceAware,
DocumentBuilderSetting.notValidating };
}
}