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]

Reply via email to