1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (c) 2001-2004 World Wide Web Consortium, 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (Massachusetts Institute of Technology, Institut National de 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Recherche en Informatique et en Automatique, Keio University). All 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Rights Reserved. This program is distributed under the W3C's Software 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Intellectual Property License. This program is distributed in the 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * PURPOSE. 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See W3C License http://www.w3.org/Consortium/Legal/ for more details. 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.w3c.domts; 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.lang.reflect.Constructor; 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.lang.reflect.InvocationTargetException; 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.lang.reflect.Method; 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.SAXParser; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.SAXParserFactory; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.DOMImplementation; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Document; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * This class implements the generic parser and configuation 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * abstract class for the DOM implementation of Batik. 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author Curt Arnold 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class BatikTestDocumentBuilderFactory 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project extends DOMTestDocumentBuilderFactory { 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** dom factory. */ 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Object domFactory; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** xml reader. */ 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private org.xml.sax.XMLReader xmlReader; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** reflective method to create document in Batik. **/ 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Method createDocument; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** dom implementation from Batik. **/ 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private DOMImplementation domImpl; 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Creates a Batik implementation of DOMTestDocumentBuilderFactory. 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param settings array of settings, may be null. 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws DOMTestIncompatibleException 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * If implementation does not support the specified settings 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public BatikTestDocumentBuilderFactory( 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DocumentBuilderSetting[] settings) throws DOMTestIncompatibleException { 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(settings); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project domImpl = null; 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // get the JAXP specified SAX parser's class name 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParserFactory saxFactory = SAXParserFactory.newInstance(); 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParser saxParser = saxFactory.newSAXParser(); 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project xmlReader = saxParser.getXMLReader(); 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception ex) { 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new DOMTestIncompatibleException(ex, null); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String xmlReaderClassName = xmlReader.getClass().getName(); 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // can't change settings, so if not the same as 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // the default SAX parser then throw an exception 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // for(int i = 0; i < settings.length; i++) { 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // if(!settings[i].hasSetting(this)) { 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // TODO 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // throw new DOMTestIncompatibleException(null,settings[i]); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // } 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // } 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // try loading Batik reflectively 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ClassLoader classLoader = ClassLoader.getSystemClassLoader(); 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Class domFactoryClass = 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project classLoader.loadClass( 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "org.apache.batik.dom.svg.SAXSVGDocumentFactory"); 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Constructor domFactoryConstructor = 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project domFactoryClass.getConstructor(new Class[] {String.class}); 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project domFactory = 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project domFactoryConstructor.newInstance( 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Object[] {xmlReaderClassName}); 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project createDocument = 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project domFactoryClass.getMethod( 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "createDocument", 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Class[] {String.class, java.io.InputStream.class}); 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InvocationTargetException ex) { 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new DOMTestIncompatibleException( 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ex.getTargetException(), 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project null); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception ex) { 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new DOMTestIncompatibleException(ex, null); 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Create new instance of document builder factory 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * reflecting specified settings. 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param newSettings new settings 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return New instance 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws DOMTestIncompatibleException 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if settings are not supported by implementation 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public DOMTestDocumentBuilderFactory newInstance( 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DocumentBuilderSetting[] newSettings) 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws DOMTestIncompatibleException { 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (newSettings == null) { 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return this; 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DocumentBuilderSetting[] mergedSettings = mergeSettings(newSettings); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new BatikTestDocumentBuilderFactory(mergedSettings); 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Loads specified URL. 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param url url to load 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return DOM document 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws DOMTestLoadException if unable to load document 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Document load(java.net.URL url) throws DOMTestLoadException { 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project java.io.InputStream stream = url.openStream(); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return (org.w3c.dom.Document) createDocument.invoke( 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project domFactory, 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Object[] {url.toString(), stream}); 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InvocationTargetException ex) { 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ex.printStackTrace(); 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new DOMTestLoadException(ex.getTargetException()); 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception ex) { 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ex.printStackTrace(); 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new DOMTestLoadException(ex); 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Gets DOMImplementation. 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return DOM implementation, may be null 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public DOMImplementation getDOMImplementation() { 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // get DOM implementation 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (domImpl == null) { 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Class svgDomImplClass = 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ClassLoader.getSystemClassLoader().loadClass( 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "org.apache.batik.dom.svg.SVGDOMImplementation"); 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Method getImpl = 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project svgDomImplClass.getMethod( 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "getDOMImplementation", 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new Class[0]); 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project domImpl = 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (DOMImplementation) getImpl.invoke(null, new Object[0]); 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception ex) { 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return domImpl; 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Determines if the implementation supports the specified feature. 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param feature Feature 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param version Version 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return true if implementation supports the feature 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean hasFeature(String feature, String version) { 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return getDOMImplementation().hasFeature(feature, version); 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Adds any specialized extension required by the implementation. 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param testFileName file name from test 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return possibly modified file name 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String addExtension(String testFileName) { 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return testFileName + ".svg"; 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Indicates whether the implementation combines text and cdata nodes. 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return true if coalescing 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isCoalescing() { 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Indicates whether the implementation expands entity references. 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return true if expanding entity references 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isExpandEntityReferences() { 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Indicates whether the implementation ignores 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * element content whitespace. 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return true if ignoring element content whitespace 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isIgnoringElementContentWhitespace() { 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Indicates whether the implementation is namespace aware. 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return true if namespace aware 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isNamespaceAware() { 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return true; 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Indicates whether the implementation is validating. 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return true if validating 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isValidating() { 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Gets content type. 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return content type, "image/svg+xml" 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String getContentType() { 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return "image/svg+xml"; 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 240