| /* |
| * Copyright (c) 2001-2003 World Wide Web Consortium, |
| * (Massachusetts Institute of Technology, Institut National de |
| * Recherche en Informatique et en Automatique, Keio University). All |
| * Rights Reserved. This program is distributed under the W3C's Software |
| * Intellectual Property License. This program is distributed in the |
| * hope that it will be useful, but WITHOUT ANY WARRANTY; without even |
| * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
| * PURPOSE. |
| * See W3C License http://www.w3.org/Consortium/Legal/ for more details. |
| */ |
| |
| /* |
| $Log: XalanDOMTestDocumentBuilderFactory.java,v $ |
| Revision 1.2 2004/03/11 01:44:21 dom-ts-4 |
| Checkstyle fixes (bug 592) |
| |
| Revision 1.1 2003/04/24 05:02:05 dom-ts-4 |
| Xalan-J support for L3 XPath |
| http://www.w3.org/Bugs/Public/show_bug.cgi?id=191 |
| |
| Revision 1.1 2002/02/03 07:47:51 dom-ts-4 |
| More missing files |
| |
| */ |
| |
| package org.w3c.domts; |
| |
| import java.lang.reflect.Constructor; |
| |
| import javax.xml.parsers.DocumentBuilderFactory; |
| |
| import org.w3c.dom.Document; |
| |
| /** |
| * |
| * This class uses Xalan-J to add XPath support |
| * to the current JAXP DOM implementation |
| */ |
| public class XalanDOMTestDocumentBuilderFactory |
| extends JAXPDOMTestDocumentBuilderFactory { |
| |
| /** |
| * Creates a JAXP implementation of DOMTestDocumentBuilderFactory. |
| * @param factory null for default JAXP provider. If not null, |
| * factory will be mutated in constructor and should be released |
| * by calling code upon return. |
| * @param settings array of settings, may be null. |
| */ |
| public XalanDOMTestDocumentBuilderFactory( |
| DocumentBuilderFactory baseFactory, |
| DocumentBuilderSetting[] settings) throws DOMTestIncompatibleException { |
| super(baseFactory, settings); |
| } |
| |
| protected DOMTestDocumentBuilderFactory createInstance(DocumentBuilderFactory |
| newFactory, |
| DocumentBuilderSetting[] mergedSettings) throws |
| DOMTestIncompatibleException { |
| return new XalanDOMTestDocumentBuilderFactory(newFactory, mergedSettings); |
| } |
| |
| /** |
| * Creates XPath evaluator |
| * @param doc DOM document, may not be null |
| */ |
| public Object createXPathEvaluator(Document doc) { |
| try { |
| Class xpathClass = Class.forName( |
| "org.apache.xpath.domapi.XPathEvaluatorImpl"); |
| Constructor constructor = xpathClass.getConstructor(new Class[] {Document.class}); |
| return constructor.newInstance(new Object[] {doc}); |
| } |
| catch (Exception ex) { |
| } |
| return doc; |
| } |
| |
| } |