mrglavas 2004/04/23 14:45:05 Modified: java/src/org/apache/xerces/dom DOMImplementationSourceImpl.java DOMXSImplementationSourceImpl.java Added: java/src/org/apache/xerces/dom org.w3c.dom.DOMImplementationSourceList org.apache.xerces.dom.DOMImplementationSourceImpl DOMImplementationListImpl.java Log: Patches for DOMImplementationList and DOMImplementationSource.
DOMImplementationListImpl is not part of the bootstrap package, so provide our own implementation. Thanks to Neil Delima. Also adding org.w3c.dom.DOMImplementationSourceList for META-INF/services. Revision Changes Path 1.15 +8 -12 xml-xerces/java/src/org/apache/xerces/dom/DOMImplementationSourceImpl.java Index: DOMImplementationSourceImpl.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DOMImplementationSourceImpl.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- DOMImplementationSourceImpl.java 24 Feb 2004 23:23:18 -0000 1.14 +++ DOMImplementationSourceImpl.java 23 Apr 2004 21:45:04 -0000 1.15 @@ -17,11 +17,11 @@ package org.apache.xerces.dom; import java.util.StringTokenizer; - +import java.util.Vector; import org.apache.xerces.dom3.DOMImplementationList; import org.apache.xerces.dom3.DOMImplementationSource; -import org.apache.xerces.dom3.bootstrap.DOMImplementationListImpl; import org.w3c.dom.DOMImplementation; +import org.apache.xerces.dom.DOMImplementationListImpl; /** * Supply one the right implementation, based upon requested features. Each @@ -29,7 +29,7 @@ * binding-specific list of available sources so that its * <code>DOMImplementation</code> objects are made available. * - * <p>See also the <a href='http://www.w3.org/2001/10/WD-DOM-Level-3-Core-20011017'>Document Object Model (DOM) Level 3 Core Specification</a>. + * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMImplementationSource'>Document Object Model (DOM) Level 3 Core Specification</a>. * * @version $Id$ */ @@ -57,14 +57,11 @@ if (testImpl(impl, features)) { return impl; } - return null; } /** - * DOM Level 3 Core - CR - * * A method to request a list of DOM implementations that support the * specified features and versions, as specified in . * @param features A string that specifies which features and versions @@ -78,17 +75,16 @@ public DOMImplementationList getDOMImplementationList(String features) { // first check whether the CoreDOMImplementation would do DOMImplementation impl = CoreDOMImplementationImpl.getDOMImplementation(); - DOMImplementationListImpl list = new DOMImplementationListImpl(); + final Vector implementations = new Vector(); if (testImpl(impl, features)) { - list.add(impl); + implementations.addElement(impl); } impl = DOMImplementationImpl.getDOMImplementation(); if (testImpl(impl, features)) { - list.add(impl); + implementations.addElement(impl); } - - return list; + return new DOMImplementationListImpl(implementations); } boolean testImpl(DOMImplementation impl, String features) { 1.3 +32 -28 xml-xerces/java/src/org/apache/xerces/dom/DOMXSImplementationSourceImpl.java Index: DOMXSImplementationSourceImpl.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DOMXSImplementationSourceImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- DOMXSImplementationSourceImpl.java 24 Feb 2004 23:23:18 -0000 1.2 +++ DOMXSImplementationSourceImpl.java 23 Apr 2004 21:45:04 -0000 1.3 @@ -16,21 +16,21 @@ package org.apache.xerces.dom; -import org.apache.xerces.dom3.DOMImplementationList; -import org.apache.xerces.dom3.bootstrap.DOMImplementationListImpl; import org.apache.xerces.impl.xs.XSImplementationImpl; +import org.apache.xerces.dom3.DOMImplementationList; import org.w3c.dom.DOMImplementation; +import java.util.Vector; /** * Allows to retrieve <code>XSImplementation</code>, DOM Level 3 Core and LS implementations * and PSVI implementation. - * <p>See also the <a href='http://www.w3.org/2001/10/WD-DOM-Level-3-Core-20011017'>Document Object Model (DOM) Level 3 Core Specification</a>. + * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMImplementationSource'>Document Object Model (DOM) Level 3 Core Specification</a>. * @author Elena Litani, IBM * @version $Id$ */ public class DOMXSImplementationSourceImpl - extends DOMImplementationSourceImpl{ - + extends DOMImplementationSourceImpl { + /** * A method to request a DOM implementation. * @param features A string that specifies which features are required. @@ -43,25 +43,23 @@ public DOMImplementation getDOMImplementation(String features) { DOMImplementation impl = super.getDOMImplementation(features); if (impl != null){ - return impl; + return impl; + } + // if not try the PSVIDOMImplementation + impl = PSVIDOMImplementationImpl.getDOMImplementation(); + if (testImpl(impl, features)) { + return impl; + } + // if not try the XSImplementation + impl = XSImplementationImpl.getDOMImplementation(); + if (testImpl(impl, features)) { + return impl; } - // if not try the PSVIDOMImplementation - impl = PSVIDOMImplementationImpl.getDOMImplementation(); - if (testImpl(impl, features)) { - return impl; - } - // if not try the XSImplementation - impl = XSImplementationImpl.getDOMImplementation(); - if (testImpl(impl, features)) { - return impl; - } return null; } /** - * DOM Level 3 Core - CR - * * A method to request a list of DOM implementations that support the * specified features and versions, as specified in . * @param features A string that specifies which features and versions @@ -73,18 +71,24 @@ * features. */ public DOMImplementationList getDOMImplementationList(String features) { + final Vector implementations = new Vector(); + // first check whether the CoreDOMImplementation would do - DOMImplementationListImpl list = (DOMImplementationListImpl)super.getDOMImplementationList(features); - DOMImplementation impl = PSVIDOMImplementationImpl.getDOMImplementation(); - if (testImpl(impl, features)) { - list.add(impl); - } + DOMImplementationList list = super.getDOMImplementationList(features); + //Add core DOMImplementations + for (int i=0; i < list.getLength(); i++ ) { + implementations.addElement(list.item(i)); + } - impl = XSImplementationImpl.getDOMImplementation(); + DOMImplementation impl = PSVIDOMImplementationImpl.getDOMImplementation(); if (testImpl(impl, features)) { - list.add(impl); + implementations.addElement(impl); } - return list; + + impl = XSImplementationImpl.getDOMImplementation(); + if (testImpl(impl, features)) { + implementations.addElement(impl); + } + return new DOMImplementationListImpl(implementations); } - } 1.1 xml-xerces/java/src/org/apache/xerces/dom/org.w3c.dom.DOMImplementationSourceList Index: org.w3c.dom.DOMImplementationSourceList =================================================================== org.apache.xerces.dom.DOMXSImplementationSourceImpl 1.1 xml-xerces/java/src/org/apache/xerces/dom/org.apache.xerces.dom.DOMImplementationSourceImpl Index: org.apache.xerces.dom.DOMImplementationSourceImpl =================================================================== org.apache.xerces.dom.DOMImplementationSourceImpl 1.3 +44 -91 xml-xerces/java/src/org/apache/xerces/dom/DOMImplementationListImpl.java --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]