1 package tests.org.w3c.dom;
3 import javax.xml.parsers.DocumentBuilder;
4 import javax.xml.parsers.DocumentBuilderFactory;
5 import javax.xml.parsers.ParserConfigurationException;
7 public class DOMDocumentBuilderFactory {
11 private DocumentBuilderSetting[] settings = null;
13 private DocumentBuilder builder = null;
15 private DocumentBuilderFactory factory = null;
17 public DOMDocumentBuilderFactory(DocumentBuilderSetting[] settings) {
18 if (settings == null) {
19 settings = new DocumentBuilderSetting[0];
21 settings = (DocumentBuilderSetting[]) settings.clone();
24 factory = DocumentBuilderFactory.newInstance();
26 if (factory == null) {
27 throw new RuntimeException("DocumentBuilderFactory must not be null");
30 if (settings != null) {
31 for (int i = 0; i < settings.length; i++) {
32 settings[i].applySetting(factory);
36 builder = factory.newDocumentBuilder();
37 } catch (ParserConfigurationException e) {
41 if (builder == null) {
42 throw new RuntimeException("DocumentBuilder must not be null");
47 public DocumentBuilder getBuilder() {
51 public boolean hasFeature(String feature, String version) {
52 return builder.getDOMImplementation().hasFeature(feature, version);
55 public boolean isCoalescing() {
56 return factory.isCoalescing();
59 public boolean isExpandEntityReferences() {
60 return factory.isExpandEntityReferences();
63 public boolean isIgnoringElementContentWhitespace() {
64 return factory.isIgnoringElementContentWhitespace();
67 public boolean isNamespaceAware() {
68 return factory.isNamespaceAware();
71 public boolean isValidating() {
72 return factory.isValidating();
75 public static DocumentBuilderSetting[] getConfiguration1() {
76 return new DocumentBuilderSetting[] {
77 DocumentBuilderSetting.notCoalescing,
78 DocumentBuilderSetting.notExpandEntityReferences,
79 DocumentBuilderSetting.notIgnoringElementContentWhitespace,
80 DocumentBuilderSetting.notNamespaceAware,
81 DocumentBuilderSetting.notValidating };
84 public static DocumentBuilderSetting[] getConfiguration2() {
85 return new DocumentBuilderSetting[] {
86 DocumentBuilderSetting.notCoalescing,
87 DocumentBuilderSetting.notExpandEntityReferences,
88 DocumentBuilderSetting.notIgnoringElementContentWhitespace,
89 DocumentBuilderSetting.namespaceAware,
90 DocumentBuilderSetting.notValidating };