xerces-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mrgla...@apache.org
Subject cvs commit: xml-xerces/java/src/org/apache/xerces/parsers AbstractDOMParser.java
Date Tue, 17 Feb 2004 00:01:51 GMT
mrglavas    2004/02/16 16:01:50

  Modified:    java/src/org/apache/xerces/parsers AbstractDOMParser.java
  Log:
  Some improvements. If the document class name is our PSVI
  implementation don't go through ObjectFactory. Load it with
  the current classloader like we do for DocumentImpl. Also,
  made some minor performance fixes. If we're loading some
  other Document implementation only lookup the classloader
  once instead of three times.
  
  Revision  Changes    Path
  1.107     +21 -5     xml-xerces/java/src/org/apache/xerces/parsers/AbstractDOMParser.java
  
  Index: AbstractDOMParser.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/AbstractDOMParser.java,v
  retrieving revision 1.106
  retrieving revision 1.107
  diff -u -r1.106 -r1.107
  --- AbstractDOMParser.java	16 Feb 2004 05:43:11 -0000	1.106
  +++ AbstractDOMParser.java	17 Feb 2004 00:01:50 -0000	1.107
  @@ -75,6 +75,7 @@
   import org.apache.xerces.dom.NodeImpl;
   import org.apache.xerces.dom.NotationImpl;
   import org.apache.xerces.dom.PSVIAttrNSImpl;
  +import org.apache.xerces.dom.PSVIDocumentImpl;
   import org.apache.xerces.dom.PSVIElementNSImpl;
   import org.apache.xerces.dom.TextImpl;
   import org.apache.xerces.dom3.DOMError;
  @@ -368,7 +369,8 @@
               documentClassName = DEFAULT_DOCUMENT_CLASS_NAME;
           }
           
  -        if (!documentClassName.equals(DEFAULT_DOCUMENT_CLASS_NAME)) {
  +        if (!documentClassName.equals(DEFAULT_DOCUMENT_CLASS_NAME) &&
  +            !documentClassName.equals(PSVI_DOCUMENT_CLASS_NAME)) {
               // verify that this class exists and is of the right type
               try {
                   Class _class = ObjectFactory.findProviderClass (documentClassName,
  @@ -782,22 +784,36 @@
                   // set documentURI
                   fDocumentImpl.setDocumentURI (locator.getExpandedSystemId ());
               }
  +            else if (fDocumentClassName.equals (PSVI_DOCUMENT_CLASS_NAME)) {
  +                fDocument = new PSVIDocumentImpl();
  +                fDocumentImpl = (CoreDocumentImpl)fDocument;
  +                fStorePSVI = true;
  +                // REVISIT: when DOM Level 3 is REC rely on Document.support
  +                //          instead of specific class
  +                // set DOM error checking off
  +                fDocumentImpl.setStrictErrorChecking (false);
  +                // set actual encoding
  +                fDocumentImpl.setInputEncoding (encoding);
  +                // set documentURI
  +                fDocumentImpl.setDocumentURI (locator.getExpandedSystemId ());
  +            }
               else {
                   // use specified document class
                   try {
  +                    ClassLoader cl = ObjectFactory.findClassLoader();
                       Class documentClass = ObjectFactory.findProviderClass (fDocumentClassName,
  -                    ObjectFactory.findClassLoader (), true);
  +                        cl, true);
                       fDocument = (Document)documentClass.newInstance ();
                       
                       // if subclass of our own class that's cool too
                       Class defaultDocClass =
                       ObjectFactory.findProviderClass (CORE_DOCUMENT_CLASS_NAME,
  -                    ObjectFactory.findClassLoader (), true);
  +                        cl, true);
                       if (defaultDocClass.isAssignableFrom (documentClass)) {
                           fDocumentImpl = (CoreDocumentImpl)fDocument;
                           
                           Class psviDocClass = ObjectFactory.findProviderClass (PSVI_DOCUMENT_CLASS_NAME,
  -                        ObjectFactory.findClassLoader (), true);
  +                            cl, true);
                           if (psviDocClass.isAssignableFrom (documentClass)) {
                               fStorePSVI = true;
                           }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org


Mime
View raw message