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