OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / libcore / luni / src / test / java / tests / org / w3c / dom / DOMDocumentBuilderFactory.java
1 package tests.org.w3c.dom;
2
3 import javax.xml.parsers.DocumentBuilder;
4 import javax.xml.parsers.DocumentBuilderFactory;
5 import javax.xml.parsers.ParserConfigurationException;
6
7 public class DOMDocumentBuilderFactory {
8     /**
9      * Parser configuration
10      */
11     private DocumentBuilderSetting[] settings = null;
12
13     private DocumentBuilder builder = null;
14
15     private DocumentBuilderFactory factory = null;
16
17     public DOMDocumentBuilderFactory(DocumentBuilderSetting[] settings) {
18         if (settings == null) {
19             settings = new DocumentBuilderSetting[0];
20         } else {
21             settings = (DocumentBuilderSetting[]) settings.clone();
22         }
23
24         factory = DocumentBuilderFactory.newInstance();
25
26         if (factory == null) {
27             throw new RuntimeException("DocumentBuilderFactory must not be null");
28         }
29
30         if (settings != null) {
31             for (int i = 0; i < settings.length; i++) {
32                 settings[i].applySetting(factory);
33             }
34         }
35         try {
36             builder = factory.newDocumentBuilder();
37         } catch (ParserConfigurationException e) {
38             e.printStackTrace();
39         }
40
41         if (builder == null) {
42             throw new RuntimeException("DocumentBuilder must not be null");
43         }
44
45     }
46
47     public DocumentBuilder getBuilder() {
48         return builder;
49     }
50
51     public boolean hasFeature(String feature, String version) {
52         return builder.getDOMImplementation().hasFeature(feature, version);
53     }
54
55     public boolean isCoalescing() {
56         return factory.isCoalescing();
57     }
58
59     public boolean isExpandEntityReferences() {
60         return factory.isExpandEntityReferences();
61     }
62
63     public boolean isIgnoringElementContentWhitespace() {
64         return factory.isIgnoringElementContentWhitespace();
65     }
66
67     public boolean isNamespaceAware() {
68         return factory.isNamespaceAware();
69     }
70
71     public boolean isValidating() {
72         return factory.isValidating();
73     }
74
75     public static DocumentBuilderSetting[] getConfiguration1() {
76         return new DocumentBuilderSetting[] {
77                 DocumentBuilderSetting.notCoalescing,
78                 DocumentBuilderSetting.notExpandEntityReferences,
79                 DocumentBuilderSetting.notIgnoringElementContentWhitespace,
80                 DocumentBuilderSetting.notNamespaceAware,
81                 DocumentBuilderSetting.notValidating };
82     }
83
84     public static DocumentBuilderSetting[] getConfiguration2() {
85         return new DocumentBuilderSetting[] {
86                 DocumentBuilderSetting.notCoalescing,
87                 DocumentBuilderSetting.notExpandEntityReferences,
88                 DocumentBuilderSetting.notIgnoringElementContentWhitespace,
89                 DocumentBuilderSetting.namespaceAware,
90                 DocumentBuilderSetting.notValidating };
91
92     }
93
94 }