zongaro     2002/08/24 04:33:23

  Modified:    java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
                        DOMAdapter.java LoadDocument.java MultiDOM.java
               java/src/org/apache/xalan/xsltc Tag: XSLTC_DTM DOM.java
               java/src/org/apache/xalan/xsltc/compiler Tag: XSLTC_DTM
                        Constants.java
  Log:
  Eliminated use of DTDMonitor in building an XSLTC DOM object.  Instead, the
  nested DOMBuilderImpl classes of DOMImpl and SAXImpl now implement the
  DTDHandler and DeclHandler SAX interfaces (and the ExtendedSAX interface now
  extends them).  With these changes, we now use DOMImpl to build an XSLTC DOM
  from a DOMSource object, rather than using DOM2SAX to build the XSLTC DOM from
  SAX events.
  
  DTDMonitor was responsible for capturing information from SAX events relating
  to unparsed entities and ID attribute values, and gave that information to the
  translet, where it was ultimately stored.  With this change, DOMImpl and 
SAXImpl
  are responsible for capturing this information; in the case of ID attribute
  values, the information is again given back to the translet, which treats them
  in the same manner as xsl:key elements.  So the XSLTC DOM interface (and the
  classes that implement it) now add a getUnparsedEntityURI method and a
  getElementsWithID method.
  
  Also, introduced getNodeNameX method to XSLTC DOM interface, which gives node
  name as required by XPath semantics, rather than W3C DOM semantics.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.11.10.3 +17 -1     
xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMAdapter.java
  
  Index: DOMAdapter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMAdapter.java,v
  retrieving revision 1.11.10.2
  retrieving revision 1.11.10.3
  diff -u -r1.11.10.2 -r1.11.10.3
  --- DOMAdapter.java   29 Jul 2002 00:01:27 -0000      1.11.10.2
  +++ DOMAdapter.java   24 Aug 2002 11:33:23 -0000      1.11.10.3
  @@ -71,6 +71,7 @@
   import org.apache.xalan.xsltc.NodeIterator;
   import org.apache.xalan.xsltc.TransletOutputHandler;
   import org.apache.xalan.xsltc.TransletException;
  +import org.apache.xalan.xsltc.runtime.Hashtable;
   
   import org.apache.xml.dtm.*;
   import org.apache.xml.dtm.ref.*;
  @@ -283,6 +284,13 @@
        return "";
         return _domImpl.getNodeName(node);
       }
  +    
  +    public String getNodeNameX(final int node) 
  +    {
  +     if (node == DTM.NULL)
  +     return "";
  +      return _domImpl.getNodeNameX(node);
  +    }
   
       public String getNamespaceName(final int node) 
       {
  @@ -426,5 +434,13 @@
        throws TransletException 
       {
        return _domImpl.lookupNamespace(node, prefix);
  +    }
  +
  +    public String getUnparsedEntityURI(String entity) {
  +        return _domImpl.getUnparsedEntityURI(entity);
  +    }
  +
  +    public Hashtable getElementsWithIDs() {
  +        return _domImpl.getElementsWithIDs();
       }
   }
  
  
  
  1.11.10.3 +9 -22     
xml-xalan/java/src/org/apache/xalan/xsltc/dom/LoadDocument.java
  
  Index: LoadDocument.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/LoadDocument.java,v
  retrieving revision 1.11.10.2
  retrieving revision 1.11.10.3
  diff -u -r1.11.10.2 -r1.11.10.3
  --- LoadDocument.java 13 Aug 2002 21:21:13 -0000      1.11.10.2
  +++ LoadDocument.java 24 Aug 2002 11:33:23 -0000      1.11.10.3
  @@ -160,28 +160,15 @@
            final SAXParser parser = factory.newSAXParser();
            final XMLReader reader = parser.getXMLReader();
   
  -        // Create a DTD monitor and pass it to the XMLReader object
  -         DTDMonitor dtdMonitor = new DTDMonitor();
  -         dtdMonitor.handleDTD(reader);
  -
            // Set the DOM's DOM builder as the XMLReader's SAX2 content handler
  -         DTMManager dtmManager = 
((DTMDefaultBase)((DOMAdapter)multiplexer.getMain()).getDOMImpl()).m_mgr;
  -      //DTMManager dtmManager = XSLTCDTMManager.newInstance(
  -       //          
org.apache.xpath.objects.XMLStringFactoryImpl.getFactory());                    
                  
  -      newdom = (SAXImpl)dtmManager.getDTM(new SAXSource(reader, new 
InputSource(uri)), false, null, true, true);
  -             //newdom = new DOMImpl();
  -        // reader.setContentHandler(((SAXImpl)newdom).getBuilder());
  -
  +         DTMManager dtmManager =
  +                     ((DTMDefaultBase)((DOMAdapter)multiplexer.getMain())
  +                                               .getDOMImpl()).m_mgr;
  +            newdom = (SAXImpl)dtmManager.getDTM(
  +                                 new SAXSource(reader, new InputSource(uri)),
  +                                 false, null, true, true);
   
            ((SAXImpl)newdom).setDocumentURI(uri);
  -         //reader.parse(uri);
  -
  -         // Set size of key/id indices
  -         translet.setIndexSize(newdom.getSize());
  -         // Create index for any ID attributes defined in the document DTD
  -         dtdMonitor.buildIdIndex(newdom, mask, translet);
  -         // Pass any unparsed URI elements to the translet
  -         translet.setUnparsedEntityURIs(dtdMonitor.getUnparsedEntityURIs());
        }
   
        // Wrap the DOM object in a DOM adapter and add to multiplexer
  @@ -189,10 +176,10 @@
        mask = multiplexer.addDOMAdapter(domAdapter);
   
        // Create index for any key elements
  -     translet.buildKeys((DOM)newdom, null, null, 
((SAXImpl)newdom).getDocument()/*DTMDefaultBase.ROOTNODE | mask*/);
  +     translet.buildKeys(newdom, null, null, ((SAXImpl)newdom).getDocument());
   
        // Return a singleton iterator containing the root node
  -     return new 
SingletonIterator(((SAXImpl)newdom).getDocument()/*DTMDefaultBase.ROOTNODE | 
mask*/, true);
  +     return new SingletonIterator(((SAXImpl)newdom).getDocument(), true);
       }
   
       /**
  
  
  
  1.16.10.3 +17 -1     
xml-xalan/java/src/org/apache/xalan/xsltc/dom/MultiDOM.java
  
  Index: MultiDOM.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/MultiDOM.java,v
  retrieving revision 1.16.10.2
  retrieving revision 1.16.10.3
  diff -u -r1.16.10.2 -r1.16.10.3
  --- MultiDOM.java     29 Jul 2002 00:01:27 -0000      1.16.10.2
  +++ MultiDOM.java     24 Aug 2002 11:33:23 -0000      1.16.10.3
  @@ -410,6 +410,12 @@
        return "";
        return _adapters[getDTMId(node)].getNodeName(node & CLR);
       }
  +    
  +    public String getNodeNameX(final int node) {
  +     if (node == DTM.NULL)
  +     return "";
  +     return _adapters[getDTMId(node)].getNodeNameX(node & CLR);
  +    }
   
       public String getNamespaceName(final int node) {
        if (node == DTM.NULL)
  @@ -560,5 +566,15 @@
        throws TransletException
       {
        return _adapters[node>>>24].lookupNamespace(node, prefix);
  +    }
  +
  +    // %HZ% Does this method make any sense here???
  +    public String getUnparsedEntityURI(String entity) {
  +        return _adapters[0].getUnparsedEntityURI(entity);
  +    }
  +
  +    // %HZ% Does this method make any sense here???
  +    public Hashtable getElementsWithIDs() {
  +        return _adapters[0].getElementsWithIDs();
       }
   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.9.10.3  +5 -1      xml-xalan/java/src/org/apache/xalan/xsltc/DOM.java
  
  Index: DOM.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/DOM.java,v
  retrieving revision 1.9.10.2
  retrieving revision 1.9.10.3
  diff -u -r1.9.10.2 -r1.9.10.3
  --- DOM.java  29 Jul 2002 00:01:21 -0000      1.9.10.2
  +++ DOM.java  24 Aug 2002 11:33:23 -0000      1.9.10.3
  @@ -68,6 +68,7 @@
   
   import org.apache.xml.dtm.*;
   import org.apache.xml.dtm.ref.*;
  +import org.apache.xalan.xsltc.runtime.Hashtable;
   
   public interface DOM {
       public final static int  FIRST_TYPE             = 0;
  @@ -96,6 +97,7 @@
                                             String value, boolean op);
       public DTMAxisIterator orderNodes(DTMAxisIterator source, int node);
       public String getNodeName(final int node);
  +    public String getNodeNameX(final int node);
       public String getNamespaceName(final int node);
       public int getType(final int node);
       public int getNamespaceType(final int node);
  @@ -132,4 +134,6 @@
       public TransletOutputHandler getOutputDomBuilder();
       public int getNSType(int node);
       public int getDocument();
  +    public String getUnparsedEntityURI(String name);
  +    public Hashtable getElementsWithIDs();
   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.19.2.3  +7 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Constants.java,v
  retrieving revision 1.19.2.2
  retrieving revision 1.19.2.3
  diff -u -r1.19.2.2 -r1.19.2.3
  --- Constants.java    29 Jul 2002 00:01:22 -0000      1.19.2.2
  +++ Constants.java    24 Aug 2002 11:33:23 -0000      1.19.2.3
  @@ -223,6 +223,8 @@
        = "makeNode";
       public static final String MAKE_NODE_LIST     
        = "makeNodeList";
  +    public static final String GET_UNPARSED_ENTITY_URI
  +        = "getUnparsedEntityURI";
       public static final String STRING_TO_REAL     
        = "stringToReal";
       public static final String STRING_TO_REAL_SIG 
  @@ -322,7 +324,7 @@
        = "document";
   
       public static final String GET_NODE_NAME      
  -     = "getNodeName";
  +     = "getNodeNameX";
       public static final String CHARACTERSW        
        = "characters";
       public static final String GET_CHILDREN       
  @@ -484,6 +486,9 @@
        = "getNodeValueIterator";
       public static final String GET_NODE_VALUE_ITERATOR_SIG
        = "("+NODE_ITERATOR_SIG+"I"+STRING_SIG+"Z)"+NODE_ITERATOR_SIG;
  +
  +    public static final String GET_UNPARSED_ENTITY_URI_SIG
  +        = "("+STRING_SIG+")"+STRING_SIG;
   
       public static final int POSITION_INDEX = 2;
       public static final int LAST_INDEX     = 3;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to