You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mm...@apache.org on 2002/10/11 23:23:20 UTC

cvs commit: xml-xalan/java/src/org/apache/xpath/objects XNodeSet.java

mmidy       2002/10/11 14:23:20

  Modified:    java/src/org/apache/xalan/processor Tag: xslt20
                        ProcessorCharacters.java XSLTSchema.java
               java/src/org/apache/xalan/templates Tag: xslt20
                        ElemApplyTemplates.java ElemCallTemplate.java
                        ElemLiteralResult.java ElemParam.java
                        ElemTemplate.java ElemTemplateElement.java
                        ElemUse.java ElemWithParam.java
                        RedundentExprEliminator.java StylesheetRoot.java
                        XSLTVisitor.java
               java/src/org/apache/xalan/transformer Tag: xslt20
                        TransformerImpl.java
               java/src/org/apache/xml/utils Tag: xslt20 DOMBuilder.java
               java/src/org/apache/xpath/objects Tag: xslt20 XNodeSet.java
  Added:       java/src/org/apache/xalan/processor Tag: xslt20
                        ClassesDef.java ClassesDefImpl.java
  Log:
  Patch from Lionel Villard to extend xalan for tooling purposes. The patch contains the following changes:
  The internal representation of stylesheets is now built using an external definition of classes (see ClassesDef.java). This allows externals applications to extend easily the capabilities of stylesheets modeling and processing. This feature relies on the declaration of the system property ClassesDef.CLASSES_DEF_KEY, its value contains the class name of the concrete class that extends ClassesDef.java
  In the ElemLiteralResult class, a trace event is now generated before and after its execution.
  Correction of a bug in ApplyTemplatesElem.java: the default text template wasn't correctly handled in non-optimized mode.
  The methods in the XSLTVisitor.java class are now public, so externals applications can now use the visitor pattern on XSLT.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.9.16.1  +10 -2     xml-xalan/java/src/org/apache/xalan/processor/ProcessorCharacters.java
  
  Index: ProcessorCharacters.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorCharacters.java,v
  retrieving revision 1.9
  retrieving revision 1.9.16.1
  diff -u -r1.9 -r1.9.16.1
  --- ProcessorCharacters.java	20 Jun 2001 16:34:32 -0000	1.9
  +++ ProcessorCharacters.java	11 Oct 2002 21:23:18 -0000	1.9.16.1
  @@ -56,8 +56,8 @@
    */
   package org.apache.xalan.processor;
   
  -import java.lang.StringBuffer;
   import org.w3c.dom.Node;
  +import org.xml.sax.SAXException;
   
   import javax.xml.transform.TransformerException;
   
  @@ -95,7 +95,15 @@
                   ||!XMLCharacterRecognizer.isWhiteSpace(m_accumulator)) 
                   || handler.isSpacePreserve())
       {
  -      ElemTextLiteral elem = new ElemTextLiteral();
  +      //ElemTextLiteral elem = new ElemTextLiteral();
  +      ElemTextLiteral elem;
  +      try {
  +        elem = (ElemTextLiteral) ClassesDef.getSingleton().getClass(Constants.ELEMNAME_TEXTLITERALRESULT).newInstance();
  +      } catch (InstantiationException e) {
  +        throw new SAXException(e);
  +      } catch (IllegalAccessException e) {
  +        throw new SAXException(e);
  +      }
   
         elem.setDOMBackPointer(m_firstBackPointer);
         elem.setLocaterInfo(handler.getLocator());
  
  
  
  1.29.2.1.2.2 +30 -22    xml-xalan/java/src/org/apache/xalan/processor/XSLTSchema.java
  
  Index: XSLTSchema.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/XSLTSchema.java,v
  retrieving revision 1.29.2.1.2.1
  retrieving revision 1.29.2.1.2.2
  diff -u -r1.29.2.1.2.1 -r1.29.2.1.2.2
  --- XSLTSchema.java	16 Aug 2002 21:23:47 -0000	1.29.2.1.2.1
  +++ XSLTSchema.java	11 Oct 2002 21:23:18 -0000	1.29.2.1.2.2
  @@ -70,10 +70,18 @@
   {
   
     /**
  +   * Local copy of classes definition singleton
  +   */
  +  ClassesDef m_classesDef = null;
  +
  +
  +  /**
      * Construct a XSLTSchema which represents the XSLT "schema".
      */
     XSLTSchema()
     {
  +    m_classesDef = ClassesDef.getSingleton();
  +    
       build();
     }
   
  @@ -287,7 +295,7 @@
   		XSLTElementDef charData = new XSLTElementDef(this, null, "text()",
                                   null /*alias */, null /* elements */, null,  /* attributes */
                                   new ProcessorCharacters(),
  -                                ElemTextLiteral.class /* class object */);
  +                                m_classesDef.getClass(Constants.ELEMNAME_TEXTLITERALRESULT) /* class object */);
   
       charData.setType(XSLTElementDef.T_PCDATA);
   
  @@ -295,7 +303,7 @@
                                         null /*alias */, null /* elements */,
                                         null,  /* attributes */
                                         null,
  -                                      ElemTextLiteral.class /* should be null? -sb */);
  +                                      m_classesDef.getClass(Constants.ELEMNAME_TEXTLITERALRESULT) /* should be null? -sb */);
   
       charData.setType(XSLTElementDef.T_PCDATA);
   
  @@ -323,7 +331,7 @@
                                          xslResultAttr,
                                          resultAttr }, 
                                           new ProcessorLRE(),
  -                                     ElemLiteralResult.class /* class object */, 20, true);
  +                                      m_classesDef.getClass(Constants.ELEMNAME_LITERALRESULT)  /* class object */, 20, true);
       XSLTElementDef unknownElement =
         new XSLTElementDef(this, "*", "unknown", null /*alias */,
                            templateElementsAndParams /* elements */,
  @@ -342,7 +350,7 @@
                                                             disableOutputEscapingAttr,
                                                             separatorAttr }, 
                                                  new ProcessorTemplateElem(),
  -                                  ElemValueOf.class /* class object */, 20, true);
  +                                   m_classesDef.getClass(Constants.ELEMNAME_VALUEOF)  /* class object */, 20, true);
       XSLTElementDef xslCopyOf =
         new XSLTElementDef(
           this,
  @@ -352,7 +360,7 @@
           null,
           new XSLTAttributeDef[] { selectAttrRequired, separatorAttr },
           new ProcessorTemplateElem(),
  -        ElemCopyOf.class,
  +        m_classesDef.getClass(Constants.ELEMNAME_COPY_OF),
           20,
           true);
       XSLTElementDef xslNumber = new XSLTElementDef(this,
  @@ -368,7 +376,7 @@
                                                            groupingSeparatorAVT,
                                                            groupingSizeAttr }, 
                                           new ProcessorTemplateElem(),
  -                                 ElemNumber.class /* class object */, 20, true);
  +                                  m_classesDef.getClass(Constants.ELEMNAME_NUMBER) /* class object */, 20, true);
   
       // <!-- xsl:sort cannot occur after any other elements or
       // any non-whitespace character -->
  @@ -390,7 +398,7 @@
                                       templateElements /* elements */,  // %template;>
                                       new XSLTAttributeDef[]{ nameAttrRequired,
                                                               selectAttrOpt }, new ProcessorTemplateElem(),
  -                                                                             ElemWithParam.class /* class object */, 19, true);
  +                                                                             m_classesDef.getClass(Constants.ELEMNAME_WITHPARAM) /* class object */, 19, true);
       XSLTElementDef xslApplyTemplates = new XSLTElementDef(this,
                                            Constants.S_XSLNAMESPACEURL,
                                            "apply-templates", null /*alias */,
  @@ -399,20 +407,20 @@
                                                                    selectAttrDefNode,
                                                                    modeAttr }, 
                                                                           new ProcessorTemplateElem(),
  -                                         ElemApplyTemplates.class /* class object */, 20, true);
  +                                         m_classesDef.getClass(Constants.ELEMNAME_APPLY_TEMPLATES) /* class object */, 20, true);
       XSLTElementDef xslApplyImports =
         new XSLTElementDef(this, Constants.S_XSLNAMESPACEURL, "apply-imports",
                            null /*alias */, null /* elements */,
                            new XSLTAttributeDef[]{},
                            new ProcessorTemplateElem(),
  -                         ElemApplyImport.class /* class object */);
  +                         m_classesDef.getClass(Constants.ELEMNAME_APPLY_IMPORTS) /* class object */);
       XSLTElementDef xslForEach = new XSLTElementDef(this,
                                     Constants.S_XSLNAMESPACEURL, "for-each",
                                     null /*alias */, templateElementsAndSort,  // (#PCDATA %instructions; %result-elements; | xsl:sort)*
                                     new XSLTAttributeDef[]{ selectAttrRequired,
                                                             spaceAttr }, 
                                                  new ProcessorTemplateElem(),
  -                                  ElemForEach.class /* class object */, true, false, true, 20, true);		
  +                                  m_classesDef.getClass(Constants.ELEMNAME_FOREACH) /* class object */, true, false, true, 20, true);		
       XSLTElementDef xslMatchingSubstring = new XSLTElementDef(this,
                                     Constants.S_XSLNAMESPACEURL, "matching-substring",
                                     null /*alias */, templateElements,  // (#PCDATA %instructions; %result-elements;)*
  @@ -446,14 +454,14 @@
                                                 new XSLTAttributeDef[]{
                                                   testAttrRequired,
                                                   spaceAttr }, new ProcessorTemplateElem(),
  -                                                             ElemIf.class /* class object */, 20, true);
  +                                                             m_classesDef.getClass(Constants.ELEMNAME_IF)  /* class object */, 20, true);
       XSLTElementDef xslWhen =
         new XSLTElementDef(this, Constants.S_XSLNAMESPACEURL, "when",
                            null /*alias */, templateElements /* elements */,  // %template;>
                                                   new XSLTAttributeDef[]{
                                                     testAttrRequired,
                                                     spaceAttr }, new ProcessorTemplateElem(),
  -                                                               ElemWhen.class /* class object */,
  +                                                               m_classesDef.getClass(Constants.ELEMNAME_WHEN) /* class object */,
                                                                                                   false, true, 1, true);
       XSLTElementDef xslOtherwise = new XSLTElementDef(this,
                                       Constants.S_XSLNAMESPACEURL, "otherwise",
  @@ -461,7 +469,7 @@
                                       templateElements /* elements */,  // %template;>
                                       new XSLTAttributeDef[]{ spaceAttr },
                                       new ProcessorTemplateElem(),
  -                                    ElemOtherwise.class /* class object */,
  +                                    m_classesDef.getClass(Constants.ELEMNAME_OTHERWISE) /* class object */,
                                                          false, false, 2, false);
       XSLTElementDef xslChoose = new XSLTElementDef(this,
                                    Constants.S_XSLNAMESPACEURL, "choose",
  @@ -470,7 +478,7 @@
                                                          xslOtherwise } /* elements */, 
                                           new XSLTAttributeDef[]{ spaceAttr },
                                    new ProcessorTemplateElem(),
  -                                 ElemChoose.class /* class object */, true, false, true, 20, true);                                
  +                                 m_classesDef.getClass(Constants.ELEMNAME_CHOOSE) /* class object */, true, false, true, 20, true);                                
       XSLTElementDef xslAttribute = new XSLTElementDef(this,
                                       Constants.S_XSLNAMESPACEURL, "attribute",
                                       null /*alias */,
  @@ -479,14 +487,14 @@
                                                               namespaceAVTOpt,
                                                               spaceAttr }, 
                                       new ProcessorTemplateElem(),
  -                                    ElemAttribute.class /* class object */, 20, true);
  +                                   m_classesDef.getClass(Constants.ELEMNAME_ATTRIBUTE) /* class object */, 20, true);
       XSLTElementDef xslCallTemplate =
         new XSLTElementDef(this, Constants.S_XSLNAMESPACEURL, "call-template",
                            null /*alias */,
                            new XSLTElementDef[]{ xslWithParam } /* elements */,
                            new XSLTAttributeDef[]{ nameAttrRequired },
                            new ProcessorTemplateElem(),
  -                         ElemCallTemplate.class /* class object */, 20, true);
  +                        m_classesDef.getClass(Constants.ELEMNAME_CALLTEMPLATE) /* class object */, 20, true);
       XSLTElementDef xslVariable = new XSLTElementDef(this,
                                      Constants.S_XSLNAMESPACEURL, "variable",
                                      null /*alias */,
  @@ -494,7 +502,7 @@
                                      new XSLTAttributeDef[]{ nameAttrRequired,
                                                              selectAttrOpt }, 
                                     new ProcessorTemplateElem(),
  -                                   ElemVariable.class /* class object */, 20, true);
  +                                   m_classesDef.getClass(Constants.ELEMNAME_VARIABLE) /* class object */, 20, true);
       XSLTElementDef xslParam = new XSLTElementDef(this,
                                   Constants.S_XSLNAMESPACEURL, "param",
                                   null /*alias */,
  @@ -502,14 +510,14 @@
                                   new XSLTAttributeDef[]{ nameAttrRequired,
                                                           selectAttrOpt }, 
                                          new ProcessorTemplateElem(),
  -                                ElemParam.class /* class object */, 19, true);
  +                                m_classesDef.getClass(Constants.ELEMNAME_PARAMVARIABLE) /* class object */, 19, true);
       XSLTElementDef xslText =
         new XSLTElementDef(this, Constants.S_XSLNAMESPACEURL, "text",
                            null /*alias */,
                            new XSLTElementDef[]{ charData } /* elements */,
                            new XSLTAttributeDef[]{ disableOutputEscapingAttr },
                            new ProcessorText(),
  -                         ElemText.class /* class object */, 20, true);
  +                         m_classesDef.getClass(Constants.ELEMNAME_TEXT) /* class object */, 20, true);
       XSLTElementDef xslProcessingInstruction =
         new XSLTElementDef(this, Constants.S_XSLNAMESPACEURL,
                            "processing-instruction", null /*alias */,
  @@ -528,7 +536,7 @@
                                                             useAttributeSetsAttr,
                                                             spaceAttr }, 
                                                  new ProcessorTemplateElem(),
  -                                  ElemElement.class /* class object */, 20, true);
  +                                  m_classesDef.getClass(Constants.ELEMNAME_ELEMENT) /* class object */, 20, true);
       XSLTElementDef xslComment = new XSLTElementDef(this,
                                     Constants.S_XSLNAMESPACEURL, "comment",
                                     null /*alias */,
  @@ -543,7 +551,7 @@
                                                     spaceAttr,
                                                     useAttributeSetsAttr }, 
                                           new ProcessorTemplateElem(),
  -                          ElemCopy.class /* class object */, 20, true);
  +                          m_classesDef.getClass(Constants.ELEMNAME_COPY) /* class object */, 20, true);
       XSLTElementDef xslMessage = new XSLTElementDef(this,
                                     Constants.S_XSLNAMESPACEURL, "message",
                                     null /*alias */,
  @@ -831,7 +839,7 @@
                                                      priorityAttr,
                                                      modeAttr,
                                                      spaceAttr }, 
  -                                           new ProcessorTemplate(), ElemTemplate.class /* class object */, true, 20, true), 
  +                                           new ProcessorTemplate(), m_classesDef.getClass(Constants.ELEMNAME_TEMPLATE) /* class object */, true, 20, true), 
                                     new XSLTElementDef(
                                              this,
                                              Constants.S_XSLNAMESPACEURL,
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +101 -0    xml-xalan/java/src/org/apache/xalan/processor/Attic/ClassesDef.java
  
  
  
  
  1.1.2.1   +189 -0    xml-xalan/java/src/org/apache/xalan/processor/Attic/ClassesDefImpl.java
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.25.2.1.2.1 +14 -6     xml-xalan/java/src/org/apache/xalan/templates/ElemApplyTemplates.java
  
  Index: ElemApplyTemplates.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemApplyTemplates.java,v
  retrieving revision 1.25.2.1
  retrieving revision 1.25.2.1.2.1
  diff -u -r1.25.2.1 -r1.25.2.1.2.1
  --- ElemApplyTemplates.java	14 Aug 2002 19:21:28 -0000	1.25.2.1
  +++ ElemApplyTemplates.java	11 Oct 2002 21:23:18 -0000	1.25.2.1.2.1
  @@ -60,6 +60,8 @@
   import java.util.Vector;
   
   import javax.xml.transform.TransformerException;
  +
  +import org.apache.xalan.processor.TransformerFactoryImpl;
   import org.apache.xalan.transformer.ResultTreeHandler;
   import org.apache.xalan.transformer.StackGuard;
   import org.apache.xalan.transformer.TransformerImpl;
  @@ -344,12 +346,18 @@
             case DTM.TEXT_NODE :
               // if(rth.m_elemIsPending || rth.m_docPending)
               //  rth.flushPending(true);
  -            transformer.pushPairCurrentMatched(sroot.getDefaultTextRule(), child);
  -            transformer.setCurrentElement(sroot.getDefaultTextRule());
  -            // dtm.dispatchCharactersEvents(child, chandler, false);
  -            dtm.dispatchCharactersEvents(child, rth, false);
  -            transformer.popCurrentMatched();
  -            continue;
  +            if ( TransformerFactoryImpl.m_optimize ) {
  +                transformer.pushPairCurrentMatched(sroot.getDefaultTextRule(), child);
  +                transformer.setCurrentElement(sroot.getDefaultTextRule());
  +                // dtm.dispatchCharactersEvents(child, chandler, false);
  +                dtm.dispatchCharactersEvents(child, rth, false);
  +                transformer.popCurrentMatched();
  +                continue;
  +            } else {
  +                template = sroot.getDefaultTextRule();
  +            }
  +            //continue;
  +            break;
             case DTM.DOCUMENT_NODE :
               template = sroot.getDefaultRootRule();
               break;
  
  
  
  1.21.6.1  +1 -1      xml-xalan/java/src/org/apache/xalan/templates/ElemCallTemplate.java
  
  Index: ElemCallTemplate.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemCallTemplate.java,v
  retrieving revision 1.21
  retrieving revision 1.21.6.1
  diff -u -r1.21 -r1.21.6.1
  --- ElemCallTemplate.java	24 Mar 2002 00:57:52 -0000	1.21
  +++ ElemCallTemplate.java	11 Oct 2002 21:23:18 -0000	1.21.6.1
  @@ -114,7 +114,7 @@
      * The template which is named by QName.
      * @serial
      */
  -  private ElemTemplate m_template = null;
  +  protected ElemTemplate m_template = null;
   
     /**
      * Get an int constant identifying the type of element.
  
  
  
  1.32.4.1.2.1 +14 -0     xml-xalan/java/src/org/apache/xalan/templates/ElemLiteralResult.java
  
  Index: ElemLiteralResult.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemLiteralResult.java,v
  retrieving revision 1.32.4.1
  retrieving revision 1.32.4.1.2.1
  diff -u -r1.32.4.1 -r1.32.4.1.2.1
  --- ElemLiteralResult.java	14 Aug 2002 19:21:28 -0000	1.32.4.1
  +++ ElemLiteralResult.java	11 Oct 2002 21:23:18 -0000	1.32.4.1.2.1
  @@ -657,6 +657,8 @@
             TransformerImpl transformer)
               throws TransformerException
     {
  +    if (TransformerImpl.S_DEBUG)
  +      transformer.getTraceManager().fireTraceEvent(this);
   
       try
       {
  @@ -722,6 +724,10 @@
       catch (org.xml.sax.SAXException se)
       {
         throw new TransformerException(se);
  +    } finally {
  +      if (TransformerImpl.S_DEBUG)
  +        transformer.getTraceManager().fireTraceEndEvent(this);
  +
       }
     }
   
  @@ -766,6 +772,14 @@
           }
         }
         super.callChildVisitors(visitor, callAttrs);
  +    }
  +
  +   /**
  +    * Returns the avts.
  +    * @return Vector
  +    */
  +    protected Vector getAvts() {
  +	  return m_avts;
       }
   
   }
  
  
  
  1.12.6.1  +9 -0      xml-xalan/java/src/org/apache/xalan/templates/ElemParam.java
  
  Index: ElemParam.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemParam.java,v
  retrieving revision 1.12
  retrieving revision 1.12.6.1
  diff -u -r1.12 -r1.12.6.1
  --- ElemParam.java	24 Mar 2002 00:57:53 -0000	1.12
  +++ ElemParam.java	11 Oct 2002 21:23:18 -0000	1.12.6.1
  @@ -168,4 +168,13 @@
         transformer.getTraceManager().fireTraceEndEvent(this);
     }
     
  +  /**
  +   * Returns the qnameID.
  +   * @return int
  +   */
  +  public int getQnameID() 
  +  {
  +	return m_qnameID;
  +  }
  +
   }
  
  
  
  1.16.2.1.2.1 +9 -0      xml-xalan/java/src/org/apache/xalan/templates/ElemTemplate.java
  
  Index: ElemTemplate.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemTemplate.java,v
  retrieving revision 1.16.2.1
  retrieving revision 1.16.2.1.2.1
  diff -u -r1.16.2.1 -r1.16.2.1.2.1
  --- ElemTemplate.java	14 Aug 2002 19:21:28 -0000	1.16.2.1
  +++ ElemTemplate.java	11 Oct 2002 21:23:18 -0000	1.16.2.1.2.1
  @@ -458,4 +458,13 @@
       root.recomposeTemplates(this);
     }
   
  + /**
  +  * Returns the inArgsSize.
  +  * @return int
  +  */
  +  public int getInArgsSize() 
  +  {
  +	return m_inArgsSize;
  +  }
  +
   }
  
  
  
  1.53.2.1.2.1 +2 -2      xml-xalan/java/src/org/apache/xalan/templates/ElemTemplateElement.java
  
  Index: ElemTemplateElement.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemTemplateElement.java,v
  retrieving revision 1.53.2.1
  retrieving revision 1.53.2.1.2.1
  diff -u -r1.53.2.1 -r1.53.2.1.2.1
  --- ElemTemplateElement.java	14 Aug 2002 19:21:28 -0000	1.53.2.1
  +++ ElemTemplateElement.java	11 Oct 2002 21:23:18 -0000	1.53.2.1.2.1
  @@ -1214,7 +1214,7 @@
      *
      * @throws TransformerException
      */
  -  void executeNSDecls(TransformerImpl transformer) throws TransformerException
  +  protected void executeNSDecls(TransformerImpl transformer) throws TransformerException
     {
   
       try
  @@ -1249,7 +1249,7 @@
      *
      * @throws TransformerException
      */
  -  void unexecuteNSDecls(TransformerImpl transformer) throws TransformerException
  +  protected void unexecuteNSDecls(TransformerImpl transformer) throws TransformerException
     {
   
       try
  
  
  
  1.13.6.1  +1 -1      xml-xalan/java/src/org/apache/xalan/templates/ElemUse.java
  
  Index: ElemUse.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemUse.java,v
  retrieving revision 1.13
  retrieving revision 1.13.6.1
  diff -u -r1.13 -r1.13.6.1
  --- ElemUse.java	24 Mar 2002 00:57:53 -0000	1.13
  +++ ElemUse.java	11 Oct 2002 21:23:19 -0000	1.13.6.1
  @@ -181,7 +181,7 @@
      *
      * @throws TransformerException
      */
  -  private void applyAttrSets(
  +  protected void applyAttrSets(
             TransformerImpl transformer, StylesheetRoot stylesheet, QName attributeSetsNames[])
               throws TransformerException
     {
  
  
  
  1.9.4.1.2.1 +17 -0     xml-xalan/java/src/org/apache/xalan/templates/ElemWithParam.java
  
  Index: ElemWithParam.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemWithParam.java,v
  retrieving revision 1.9.4.1
  retrieving revision 1.9.4.1.2.1
  diff -u -r1.9.4.1 -r1.9.4.1.2.1
  --- ElemWithParam.java	14 Aug 2002 19:21:28 -0000	1.9.4.1
  +++ ElemWithParam.java	11 Oct 2002 21:23:19 -0000	1.9.4.1.2.1
  @@ -278,5 +278,22 @@
     }
   
   
  +  /**
  +   * Returns the qnameID.
  +   * @return int
  +   */  
  +   public int getQnameID() 
  +   {
  +	  return m_qnameID;
  +   }
  +
  +  /**
  +   * Returns the index.
  +   * @return int
  +   */
  +  public int getIndex() 
  +  {
  +	return m_index;
  +  }
   
   }
  
  
  
  1.4.2.1.2.1 +2 -2      xml-xalan/java/src/org/apache/xalan/templates/RedundentExprEliminator.java
  
  Index: RedundentExprEliminator.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/RedundentExprEliminator.java,v
  retrieving revision 1.4.2.1
  retrieving revision 1.4.2.1.2.1
  diff -u -r1.4.2.1 -r1.4.2.1.2.1
  --- RedundentExprEliminator.java	14 Aug 2002 19:21:28 -0000	1.4.2.1
  +++ RedundentExprEliminator.java	11 Oct 2002 21:23:19 -0000	1.4.2.1.2.1
  @@ -1182,7 +1182,7 @@
      * @param elem The xsl instruction element object.
      * @return true if the sub expressions should be traversed.
      */
  -   boolean visitTopLevelInstruction(ElemTemplateElement elem)
  +   public boolean visitTopLevelInstruction(ElemTemplateElement elem)
      {
        int type = elem.getXSLToken();
        switch(type)
  @@ -1202,7 +1202,7 @@
      * @param elem The xsl instruction element object.
      * @return true if the sub expressions should be traversed.
      */
  -  boolean visitInstruction(ElemTemplateElement elem)
  +  public boolean visitInstruction(ElemTemplateElement elem)
     {
       int type = elem.getXSLToken();
       switch (type)
  
  
  
  1.47.2.1.2.1 +61 -75    xml-xalan/java/src/org/apache/xalan/templates/StylesheetRoot.java
  
  Index: StylesheetRoot.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/StylesheetRoot.java,v
  retrieving revision 1.47.2.1
  retrieving revision 1.47.2.1.2.1
  diff -u -r1.47.2.1 -r1.47.2.1.2.1
  --- StylesheetRoot.java	14 Aug 2002 19:21:28 -0000	1.47.2.1
  +++ StylesheetRoot.java	11 Oct 2002 21:23:19 -0000	1.47.2.1.2.1
  @@ -77,6 +77,7 @@
   import org.apache.xalan.trace.*;
   import org.apache.xalan.res.XSLTErrorResources;
   import org.apache.xalan.res.XSLMessages;
  +import org.apache.xalan.processor.ClassesDef;
   import org.apache.xalan.processor.XSLTSchema;
   import org.apache.xalan.transformer.TransformerImpl;
   
  @@ -1102,82 +1103,67 @@
       throws TransformerException
     {
   
  +    ClassesDef defs = ClassesDef.getSingleton();
  +    Class templateClass = defs.getClass(Constants.ELEMNAME_TEMPLATE);
  +    Class applytemplateClass = defs.getClass(Constants.ELEMNAME_APPLY_TEMPLATES);
  +    Class valueofClass = defs.getClass(Constants.ELEMNAME_VALUEOF);
  +    
       // Then manufacture a default
  -    m_defaultRule = new ElemTemplate();
  -
  -    m_defaultRule.setStylesheet(this);
  -
  -    XPath defMatch =
  -      new XPath(
  -        "*",
  -        this,
  -        this,
  -        XPath.MATCH,
  -        errorListener,
  -        getVersionNumber());
  -
  -    m_defaultRule.setMatch(defMatch);
  -
  -    ElemApplyTemplates childrenElement = new ElemApplyTemplates();
  -
  -    childrenElement.setIsDefaultTemplate(true);
  -    childrenElement.setSelect(m_selectDefault);
  -    m_defaultRule.appendChild(childrenElement);
  -
  -    m_startRule = m_defaultRule;
  -
  -    // -----------------------------
  -    m_defaultTextRule = new ElemTemplate();
  -
  -    m_defaultTextRule.setStylesheet(this);
  -
  -    defMatch =
  -      new XPath(
  -        "text() | @*",
  -        this,
  -        this,
  -        XPath.MATCH,
  -        errorListener,
  -        getVersionNumber());
  -
  -    m_defaultTextRule.setMatch(defMatch);
  -
  -    ElemValueOf elemValueOf = new ElemValueOf();
  -
  -    m_defaultTextRule.appendChild(elemValueOf);
  -
  -    XPath selectPattern =
  -      new XPath(
  -        ".",
  -        this,
  -        this,
  -        XPath.SELECT,
  -        errorListener,
  -        getVersionNumber());
  -
  -    elemValueOf.setSelect(selectPattern);
  -
  -    //--------------------------------
  -    m_defaultRootRule = new ElemTemplate();
  -
  -    m_defaultRootRule.setStylesheet(this);
  -
  -    defMatch =
  -      new XPath(
  -        "/",
  -        this,
  -        this,
  -        XPath.MATCH,
  -        errorListener,
  -        getVersionNumber());
  -
  -    m_defaultRootRule.setMatch(defMatch);
  -
  -    childrenElement = new ElemApplyTemplates();
  -
  -    childrenElement.setIsDefaultTemplate(true);
  -    m_defaultRootRule.appendChild(childrenElement);
  -    childrenElement.setSelect(m_selectDefault);
  +    try {
  +        m_defaultRule = (ElemTemplate) templateClass.newInstance(); //new ElemTemplate();
  +        
  +        m_defaultRule.setStylesheet(this);
  +        
  +        XPath defMatch = new XPath("*", this, this, XPath.MATCH, errorListener, getVersionNumber());
  +        
  +        m_defaultRule.setMatch(defMatch);
  +        
  +        ElemApplyTemplates childrenElement = (ElemApplyTemplates) applytemplateClass.newInstance(); //new ElemApplyTemplates();
  +        
  +        childrenElement.setIsDefaultTemplate(true);
  +        childrenElement.setSelect(m_selectDefault);
  +        m_defaultRule.appendChild(childrenElement);
  +        
  +        m_startRule = m_defaultRule;
  +        
  +        // -----------------------------
  +        m_defaultTextRule = (ElemTemplate) templateClass.newInstance(); //new ElemTemplate();
  +        
  +        m_defaultTextRule.setStylesheet(this);
  +        
  +        defMatch = new XPath("text() | @*", this, this, XPath.MATCH, errorListener, getVersionNumber());
  +        
  +        m_defaultTextRule.setMatch(defMatch);
  +        
  +        ElemValueOf elemValueOf = (ElemValueOf) valueofClass.newInstance(); //new ElemValueOf();
  +        
  +        m_defaultTextRule.appendChild(elemValueOf);
  +        
  +        XPath selectPattern = new XPath(".", this, this, XPath.SELECT, errorListener, getVersionNumber());
  +        
  +        elemValueOf.setSelect(selectPattern);
  +        
  +        //--------------------------------
  +        m_defaultRootRule = (ElemTemplate) templateClass.newInstance(); //new ElemTemplate();
  +        
  +        m_defaultRootRule.setStylesheet(this);
  +        
  +        defMatch = new XPath("/", this, this, XPath.MATCH, errorListener, getVersionNumber());
  +        
  +        m_defaultRootRule.setMatch(defMatch);
  +        
  +        childrenElement = (ElemApplyTemplates) applytemplateClass.newInstance(); //new ElemApplyTemplates();
  +        
  +        childrenElement.setIsDefaultTemplate(true);
  +        m_defaultRootRule.appendChild(childrenElement);
  +        childrenElement.setSelect(m_selectDefault);
  +    } catch (InstantiationException e) {
  +        throw new TransformerException(e);
  +    } catch (IllegalAccessException e) {
  +        throw new TransformerException(e);
  +    } catch (TransformerException e) {
  +        throw new TransformerException(e);
  +    }
     }
   
     /**
  
  
  
  1.2.6.1   +8 -8      xml-xalan/java/src/org/apache/xalan/templates/XSLTVisitor.java
  
  Index: XSLTVisitor.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/XSLTVisitor.java,v
  retrieving revision 1.2
  retrieving revision 1.2.6.1
  diff -u -r1.2 -r1.2.6.1
  --- XSLTVisitor.java	22 Mar 2002 01:04:40 -0000	1.2
  +++ XSLTVisitor.java	11 Oct 2002 21:23:19 -0000	1.2.6.1
  @@ -75,7 +75,7 @@
   	 * @param elem The xsl instruction element object.
   	 * @return true if the sub expressions should be traversed.
   	 */
  -	boolean visitInstruction(ElemTemplateElement elem)
  +	public boolean visitInstruction(ElemTemplateElement elem)
   	{
   		return true;
   	}
  @@ -86,7 +86,7 @@
   	 * @param elem The xsl instruction element object.
   	 * @return true if the sub expressions should be traversed.
   	 */
  -	boolean visitStylesheet(ElemTemplateElement elem)
  +	public boolean visitStylesheet(ElemTemplateElement elem)
   	{
   		return true;
   	}
  @@ -98,7 +98,7 @@
   	 * @param elem The xsl instruction element object.
   	 * @return true if the sub expressions should be traversed.
   	 */
  -	boolean visitTopLevelInstruction(ElemTemplateElement elem)
  +	public boolean visitTopLevelInstruction(ElemTemplateElement elem)
   	{
   		return true;
   	}
  @@ -109,7 +109,7 @@
   	 * @param elem The xsl instruction element object.
   	 * @return true if the sub expressions should be traversed.
   	 */
  -	boolean visitTopLevelVariableOrParamDecl(ElemTemplateElement elem)
  +	public boolean visitTopLevelVariableOrParamDecl(ElemTemplateElement elem)
   	{
   		return true;
   	}
  @@ -121,7 +121,7 @@
   	 * @param elem The xsl instruction element object.
   	 * @return true if the sub expressions should be traversed.
   	 */
  -	boolean visitVariableOrParamDecl(ElemVariable elem)
  +	public boolean visitVariableOrParamDecl(ElemVariable elem)
   	{
   		return true;
   	}
  @@ -132,7 +132,7 @@
   	 * @param elem The literal result object.
   	 * @return true if the sub expressions should be traversed.
   	 */
  -	boolean visitLiteralResultElement(ElemLiteralResult elem)
  +	public boolean visitLiteralResultElement(ElemLiteralResult elem)
   	{
   		return true;
   	}
  @@ -145,7 +145,7 @@
   	 * @param elem The attribute value template object.
   	 * @return true if the sub expressions should be traversed.
   	 */
  -	boolean visitAVT(AVT elem)
  +	public boolean visitAVT(AVT elem)
   	{
   		return true;
   	}
  @@ -156,7 +156,7 @@
   	 * @param elem The extension object.
   	 * @return true if the sub expressions should be traversed.
   	 */
  -	boolean visitExtensionElement(ElemExtensionCall elem)
  +	public boolean visitExtensionElement(ElemExtensionCall elem)
   	{
   		return true;
   	}
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.133.2.1.2.1 +1 -1      xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java
  
  Index: TransformerImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java,v
  retrieving revision 1.133.2.1
  retrieving revision 1.133.2.1.2.1
  diff -u -r1.133.2.1 -r1.133.2.1.2.1
  --- TransformerImpl.java	14 Aug 2002 19:21:30 -0000	1.133.2.1
  +++ TransformerImpl.java	11 Oct 2002 21:23:19 -0000	1.133.2.1.2.1
  @@ -332,7 +332,7 @@
     /**
      * The trace manager.
      */
  -  private TraceManager m_traceManager = new TraceManager(this);
  +  protected TraceManager m_traceManager = new TraceManager(this);
   
     /**
      * If the transform thread throws an exception, the exception needs to
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.11.4.1  +1 -1      xml-xalan/java/src/org/apache/xml/utils/DOMBuilder.java
  
  Index: DOMBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/utils/DOMBuilder.java,v
  retrieving revision 1.11
  retrieving revision 1.11.4.1
  diff -u -r1.11 -r1.11.4.1
  --- DOMBuilder.java	10 Jul 2002 21:44:21 -0000	1.11
  +++ DOMBuilder.java	11 Oct 2002 21:23:20 -0000	1.11.4.1
  @@ -532,7 +532,7 @@
      * 
      * @return true if the current node is outside the document element.
      */
  -   private boolean isOutsideDocElem()
  +   protected boolean isOutsideDocElem()
      {
         return (null == m_docFrag) && m_elemStack.size() == 0 && (null == m_currentNode || m_currentNode.getNodeType() == Node.DOCUMENT_NODE);
      }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.21.6.1.2.1 +3 -0      xml-xalan/java/src/org/apache/xpath/objects/XNodeSet.java
  
  Index: XNodeSet.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XNodeSet.java,v
  retrieving revision 1.21.6.1
  retrieving revision 1.21.6.1.2.1
  diff -u -r1.21.6.1 -r1.21.6.1.2.1
  --- XNodeSet.java	14 Aug 2002 20:07:03 -0000	1.21.6.1
  +++ XNodeSet.java	11 Oct 2002 21:23:20 -0000	1.21.6.1.2.1
  @@ -59,6 +59,7 @@
   //import org.w3c.dom.Node;
   //import org.w3c.dom.Text;
   //import org.w3c.dom.DocumentFragment;
  +import org.apache.xalan.processor.TransformerFactoryImpl;
   import org.apache.xml.dtm.DTM;
   import org.apache.xml.dtm.DTMIterator;
   import org.apache.xml.dtm.DTMManager;
  @@ -327,6 +328,8 @@
       if(node != DTM.NULL)
       {
         m_dtmMgr.getDTM(node).dispatchCharactersEvents(node, ch, false);
  +    } else if ( !TransformerFactoryImpl.m_optimize ) {
  +      ch.characters( "".toCharArray(), 0, 0);
       }
       
     }
  
  
  

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