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