mmidy       01/06/08 12:02:10

  Modified:    java/src/org/apache/xalan/templates Tag: DTM_EXP
                        ElemChoose.java ElemCopyOf.java ElemForEach.java
                        ElemIf.java ElemValueOf.java
               java/src/org/apache/xalan/trace Tag: DTM_EXP
                        PrintTraceListener.java TraceManager.java
               java/src/org/apache/xalan/transformer Tag: DTM_EXP
                        TransformSnapshotImpl.java TransformerImpl.java
               java/src/org/apache/xpath Tag: DTM_EXP XPath.java
  Log:
  Miscellaneous changes to enable tracing for tooling
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.9.2.3   +4 -0      
xml-xalan/java/src/org/apache/xalan/templates/ElemChoose.java
  
  Index: ElemChoose.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemChoose.java,v
  retrieving revision 1.9.2.2
  retrieving revision 1.9.2.3
  diff -u -r1.9.2.2 -r1.9.2.3
  --- ElemChoose.java   2001/05/27 03:05:13     1.9.2.2
  +++ ElemChoose.java   2001/06/08 19:01:57     1.9.2.3
  @@ -156,6 +156,10 @@
   
             return;
           }
  +                             
  +                             if (TransformerImpl.S_DEBUG)
  +          transformer.getTraceManager().fireSelectedEvent(sourceNode, when,
  +                  "endTest", when.getTest(), test);
         }
         else if (Constants.ELEMNAME_OTHERWISE == type)
         {
  
  
  
  1.10.2.4  +6 -1      
xml-xalan/java/src/org/apache/xalan/templates/ElemCopyOf.java
  
  Index: ElemCopyOf.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemCopyOf.java,v
  retrieving revision 1.10.2.3
  retrieving revision 1.10.2.4
  diff -u -r1.10.2.3 -r1.10.2.4
  --- ElemCopyOf.java   2001/05/23 02:55:30     1.10.2.3
  +++ ElemCopyOf.java   2001/06/08 19:01:58     1.10.2.4
  @@ -169,7 +169,7 @@
         ResultTreeHandler handler = transformer.getResultTreeHandler();
   
         if (null != value)
  -      {
  +                     {
           int type = value.getType();
           String s;
   
  @@ -229,6 +229,11 @@
             break;
           }
         }
  +                     
  +                     if (TransformerImpl.S_DEBUG)
  +        transformer.getTraceManager().fireSelectedEvent(sourceNode, this,
  +                                                        "endSelect", 
m_selectExpression, value);
  +
       }
       catch(org.xml.sax.SAXException se)
       {
  
  
  
  1.20.2.9  +18 -13    
xml-xalan/java/src/org/apache/xalan/templates/ElemForEach.java
  
  Index: ElemForEach.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemForEach.java,v
  retrieving revision 1.20.2.8
  retrieving revision 1.20.2.9
  diff -u -r1.20.2.8 -r1.20.2.9
  --- ElemForEach.java  2001/06/04 07:52:50     1.20.2.8
  +++ ElemForEach.java  2001/06/08 19:01:59     1.20.2.9
  @@ -116,15 +116,15 @@
      * @serial
      */
     protected Expression m_selectExpression = null;
  -
  -  /**
  +     
  +      /**
      * Set the "select" attribute.
      *
      * @param xpath The XPath expression for the "select" attribute.
      */
     public void setSelect(XPath xpath)
     {
  -    m_selectExpression = xpath.getExpression();
  +             m_selectExpression = xpath.getExpression();
     }
   
     /**
  @@ -150,7 +150,7 @@
   
       if (null == m_selectExpression)
       {
  -      m_selectExpression =
  +                     m_selectExpression =
           getStylesheetRoot().m_selectDefault.getExpression();
       }
     }
  @@ -369,17 +369,17 @@
       DTMIterator sourceNodes = m_selectExpression.asIterator(xctxt, 
sourceNode);
   
       try
  -    {
  +             {
   
  -      //      if (TransformerImpl.S_DEBUG)
  -      //        transformer.getTraceManager().fireSelectedEvent(sourceNode, 
this,
  -      //                          "test", m_selectExpression,
  -      //                          new 
org.apache.xpath.objects.XNodeSet(sourceNodes));
  -      final Vector keys = (m_sortElems == null)
  -                          ? null
  -                          : transformer.processSortKeys(this, sourceNode);
  +                     if (TransformerImpl.S_DEBUG)
  +                             
transformer.getTraceManager().fireSelectedEvent(sourceNode, this,
  +                                                                             
                                                                                
                                                                "test", new 
XPath(m_selectExpression),
  +                                                                             
                                                                                
                                                                new 
org.apache.xpath.objects.XNodeSet(sourceNodes));
  +                     final Vector keys = (m_sortElems == null)
  +                                                                             
                        ? null
  +                                                                             
                                : transformer.processSortKeys(this, sourceNode);
   
  -      // Sort if we need to.
  +                     // Sort if we need to.
         if (null != keys)
           sourceNodes = sortNodes(xctxt, keys, sourceNodes);
   
  @@ -551,6 +551,11 @@
               //  guard.pop();
             }
           }
  +                             // fire end select event 
  +                             if (TransformerImpl.S_DEBUG)
  +                                     
transformer.getTraceManager().fireSelectedEvent(sourceNode, this,
  +                                                                             
                                                                                
                                                                "endTest", new 
XPath(m_selectExpression),
  +                                                                             
                                                                                
                                                                new 
org.apache.xpath.objects.XNodeSet(sourceNodes));                    
         }
         finally
         {
  
  
  
  1.9.2.2   +4 -0      xml-xalan/java/src/org/apache/xalan/templates/ElemIf.java
  
  Index: ElemIf.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemIf.java,v
  retrieving revision 1.9.2.1
  retrieving revision 1.9.2.2
  diff -u -r1.9.2.1 -r1.9.2.2
  --- ElemIf.java       2001/04/10 18:44:48     1.9.2.1
  +++ ElemIf.java       2001/06/08 19:01:59     1.9.2.2
  @@ -167,5 +167,9 @@
       {
         transformer.executeChildTemplates(this, true);
       }
  +             
  +             if (TransformerImpl.S_DEBUG)
  +      transformer.getTraceManager().fireSelectedEvent(sourceNode, this,
  +              "endTest", m_test, test);
     }
   }
  
  
  
  1.13.2.7  +14 -8     
xml-xalan/java/src/org/apache/xalan/templates/ElemValueOf.java
  
  Index: ElemValueOf.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemValueOf.java,v
  retrieving revision 1.13.2.6
  retrieving revision 1.13.2.7
  diff -u -r1.13.2.6 -r1.13.2.7
  --- ElemValueOf.java  2001/06/04 07:52:51     1.13.2.6
  +++ ElemValueOf.java  2001/06/08 19:01:59     1.13.2.7
  @@ -259,9 +259,9 @@
           {
             dtm.dispatchCharactersEvents(child, rth, false);
   
  -          // %TBD% if (TransformerImpl.S_DEBUG)
  +         //if (TransformerImpl.S_DEBUG)
             //  transformer.getTraceManager().fireSelectedEvent(child, this,
  -          //          "select", m_selectExpression, ??value??);
  +          //          "select", m_selectExpression, value);
           }
           finally
           {
  @@ -286,13 +286,19 @@
   
           try
           {
  -          Expression expr = m_selectExpression.getExpression();
  +          Expression expr = m_selectExpression.getExpression();          
   
  -          expr.executeCharsToContentHandler(xctxt, rth);
  -
  -          // %TBD% if (TransformerImpl.S_DEBUG)
  -          //  transformer.getTraceManager().fireSelectedEvent(child, this,
  -          //          "select", m_selectExpression, ??value??);
  +          if (TransformerImpl.S_DEBUG)
  +                                     {
  +                                             XObject obj = 
expr.execute(xctxt);
  +                                             
obj.dispatchCharactersEvents(rth);
  +            transformer.getTraceManager().fireSelectedEvent(current, this,
  +                    "select", m_selectExpression, obj);
  +                                     }
  +                                     else
  +                                     {
  +                                             
expr.executeCharsToContentHandler(xctxt, rth);
  +                                     }
           }
           finally
           {
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.6.2.3   +33 -37    
xml-xalan/java/src/org/apache/xalan/trace/PrintTraceListener.java
  
  Index: PrintTraceListener.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/trace/PrintTraceListener.java,v
  retrieving revision 1.6.2.2
  retrieving revision 1.6.2.3
  diff -u -r1.6.2.2 -r1.6.2.3
  --- PrintTraceListener.java   2001/05/06 02:09:31     1.6.2.2
  +++ PrintTraceListener.java   2001/06/08 19:02:03     1.6.2.3
  @@ -67,6 +67,8 @@
   import org.apache.xalan.templates.Constants;
   import org.apache.xpath.axes.ContextNodeList;
   
  +import org.apache.xml.dtm.DTM;
  +
   /**
    * <meta name="usage" content="advanced"/>
    * Implementation of the TraceListener interface that
  @@ -212,43 +214,37 @@
                      + ev.m_xpath.getPatternString() + "': ");
         }
   
  -      if (ev.m_selection.getType() == ev.m_selection.CLASS_NODESET)
  -      {
  -        m_pw.println();
  -        // %DTBD%
  -//        NodeIterator nl = ev.m_selection.nodeset();
  -//        if(nl instanceof ContextNodeList)
  -//        {
  -//          try
  -//          {
  -//            nl = ((ContextNodeList)nl).cloneWithReset();
  -//          }
  -//          catch(CloneNotSupportedException cnse)S
  -//          {
  -//            m_pw.println("     [Can't trace nodelist because it it threw a 
CloneNotSupportedException]");
  -//            return;
  -//          }
  -//          Node pos = nl.nextNode();
  -//
  -//          if (null == pos)
  -//          {
  -//            m_pw.println("     [empty node list]");
  -//          }
  -//          else
  -//          {
  -//            while (null != pos)
  -//            {
  -//              m_pw.println("     " + pos);
  -//
  -//              pos = nl.nextNode();
  -//            }
  -//          }
  -//        }
  -//        else
  -        {
  -            m_pw.println("     [Can't trace nodelist because it isn't a 
ContextNodeList]");
  -        }
  -      }
  +                     if (ev.m_selection.getType() == 
ev.m_selection.CLASS_NODESET)
  +                     {
  +                             m_pw.println();
  +                             
  +                             org.apache.xml.dtm.DTMIterator nl = 
ev.m_selection.nodeset();
  +
  +                             try
  +                             {
  +                                     nl = nl.cloneWithReset();
  +                             }
  +                             catch(CloneNotSupportedException cnse)
  +                             {
  +                                     m_pw.println("     [Can't trace 
nodelist because it it threw a CloneNotSupportedException]");
  +                                     return;
  +                             }
  +                             int pos = nl.nextNode();
  +
  +                             if (DTM.NULL == pos)
  +                             {
  +                                     m_pw.println("     [empty node list]");
  +                             }
  +                             else
  +                             {
  +                                     while (DTM.NULL != pos)
  +                                     {
  +                                             m_pw.println("     " + 
ev.m_processor.getXPathContext().getDTM(pos).getNode(pos));
  +
  +                                             pos = nl.nextNode();
  +                                     }
  +                             }        
  +                     }
         else
         {
           m_pw.println(ev.m_selection.str());
  
  
  
  1.7.2.3   +17 -12    
xml-xalan/java/src/org/apache/xalan/trace/TraceManager.java
  
  Index: TraceManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/trace/TraceManager.java,v
  retrieving revision 1.7.2.2
  retrieving revision 1.7.2.3
  diff -u -r1.7.2.2 -r1.7.2.3
  --- TraceManager.java 2001/05/06 02:09:32     1.7.2.2
  +++ TraceManager.java 2001/06/08 19:02:03     1.7.2.3
  @@ -164,13 +164,15 @@
      */
     public void fireTraceEvent(ElemTemplateElement styleNode)
     {
  -
  -  // %DTBD%
  -//    if (hasTraceListeners())
  -//    {
  -//      fireTraceEvent(new TracerEvent(m_transformer, sourceNode, mode,
  -//                                     styleNode));
  -//    }
  +  
  +    if (hasTraceListeners())
  +    {
  +                     int sourceNode = 
m_transformer.getXPathContext().getCurrentNode();
  +                     Node source = 
m_transformer.getXPathContext().getDTM(sourceNode).getNode(sourceNode);
  +    
  +      fireTraceEvent(new TracerEvent(m_transformer, source, null, 
/*sourceNode, mode,*/
  +                                     styleNode));
  +    }
     }
   
     /**
  @@ -210,11 +212,14 @@
               throws javax.xml.transform.TransformerException
     {
   
  -  // %DTBD%
  -//    if (hasTraceListeners())
  -//      fireSelectedEvent(new SelectionEvent(m_transformer, sourceNode,
  -//                                           styleNode, attributeName, xpath,
  -//                                           selection));
  +    if (hasTraceListeners())
  +             {
  +                     Node source = 
m_transformer.getXPathContext().getDTM(sourceNode).getNode(sourceNode);
  +    
  +      fireSelectedEvent(new SelectionEvent(m_transformer, source,
  +                                           styleNode, attributeName, xpath,
  +                                           selection));
  +             }
     }
   
     /**
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.5   +7 -7      
xml-xalan/java/src/org/apache/xalan/transformer/TransformSnapshotImpl.java
  
  Index: TransformSnapshotImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformSnapshotImpl.java,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- TransformSnapshotImpl.java        2001/06/04 07:52:55     1.1.2.4
  +++ TransformSnapshotImpl.java        2001/06/08 19:02:06     1.1.2.5
  @@ -102,7 +102,7 @@
     /**
      * The current context node list.
      */
  -  private ContextNodeList m_contextNodeList;
  +  private DTMIterator m_contextNodeList;
   
     /**
      * Stack of AxesIterators.
  @@ -167,9 +167,9 @@
   
     /**
      * Constructor TransformSnapshotImpl
  +   * Take a snapshot of the currently executing context.
      *
  -   *
  -   * NEEDSDOC @param transformer
  +   * @param transformer Non null transformer instance
      */
     TransformSnapshotImpl(TransformerImpl transformer)
     {
  @@ -207,7 +207,7 @@
   
         if (!m_contextNodeLists.empty())
           m_contextNodeList =
  -          (ContextNodeList) xpc.getContextNodeList().clone();
  +          (DTMIterator) xpc.getContextNodeList().clone();
   
         m_axesIteratorStack = (Stack) xpc.getAxesIteratorStackStacks().clone();
         m_currentTemplateRuleIsNull =
  @@ -231,10 +231,10 @@
     }
   
     /**
  -   * NEEDSDOC Method apply 
  -   *
  +   * This will reset the stylesheet to a given execution context
  +   * based on some previously taken snapshot where we can then start 
execution 
      *
  -   * NEEDSDOC @param transformer
  +   * @param transformer Non null transformer instance
      */
     void apply(TransformerImpl transformer)
     {
  
  
  
  1.90.2.19 +41 -13    
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.90.2.18
  retrieving revision 1.90.2.19
  diff -u -r1.90.2.18 -r1.90.2.19
  --- TransformerImpl.java      2001/06/04 07:52:09     1.90.2.18
  +++ TransformerImpl.java      2001/06/08 19:02:07     1.90.2.19
  @@ -540,14 +540,26 @@
     {
       return m_hasTransformThreadErrorCatcher;
     }
  +     
  +     /**
  +   * Process the source tree to SAX parse events.
  +   * @param source  The input for the source tree.
  +   *
  +   * @throws TransformerException
  +   */
  +  public void transform(Source source) throws TransformerException
  +  {
  +             transform(source, true); 
  +     }
   
     /**
      * Process the source tree to SAX parse events.
      * @param source  The input for the source tree.
  +   * @param shouldRelease  Flag indicating whether to release DTMManager.
      *
      * @throws TransformerException
      */
  -  public void transform(Source source) throws TransformerException
  +  public void transform(Source source, boolean shouldRelease) throws 
TransformerException
     {
   
       try
  @@ -562,7 +574,8 @@
         }
         finally
         {
  -        mgr.release(dtm, hardDelete);
  +                             if (shouldRelease)
  +                                     mgr.release(dtm, hardDelete);
         }
   
         // Kick off the parse.  When the ContentHandler gets 
  @@ -1115,15 +1128,29 @@
   
       return handler;
     }
  +     
  +     /**
  +   * Process the source tree to the output result.
  +   * @param xmlSource  The input for the source tree.
  +   * @param outputTarget The output source target.
  +   *
  +   * @throws TransformerException
  +   */
  +  public void transform(Source xmlSource, Result outputTarget)
  +          throws TransformerException
  +  {
  +             transform(xmlSource, outputTarget, true);
  +     }
   
     /**
      * Process the source tree to the output result.
      * @param xmlSource  The input for the source tree.
      * @param outputTarget The output source target.
  +   * @param shouldRelease  Flag indicating whether to release DTMManager. 
      *
      * @throws TransformerException
      */
  -  public void transform(Source xmlSource, Result outputTarget)
  +  public void transform(Source xmlSource, Result outputTarget, boolean 
shouldRelease)
             throws TransformerException
     {
   
  @@ -1134,7 +1161,7 @@
         m_outputTarget = outputTarget;
   
         this.setContentHandler(handler);
  -      transform(xmlSource);
  +      transform(xmlSource, shouldRelease);
       }
     }
   
  @@ -2100,9 +2127,9 @@
         {
   
           // Fire a trace event for the template.
  -        // 
  -        //        if (TransformerImpl.S_DEBUG)
  -        //          getTraceManager().fireTraceEvent(child, mode, template);
  +         
  +                if (TransformerImpl.S_DEBUG)
  +                  getTraceManager().fireTraceEvent(template);
           // And execute the child templates.
           // 9/11/00: If template has been compiled, hand off to it
           // since much (most? all?) of the processing has been inlined.
  @@ -3480,10 +3507,10 @@
     // Fragment re-execution interfaces for a tool.
   
     /**
  -   * NEEDSDOC Method getSnapshot 
  +   * This will get a snapshot of the current executing context 
      *
      *
  -   * NEEDSDOC (getSnapshot) @return
  +   * @return TransformerSnapshot object, snapshot of executing context
      */
     public TransformSnapshot getSnapshot()
     {
  @@ -3492,9 +3519,10 @@
   
     /**
      * This will execute the following XSLT instructions
  -   * from the snapshot point.
  +   * from the snapshot point, after the stylesheet execution
  +   * context has been reset from the snapshot point. 
      *
  -   * NEEDSDOC @param ts
  +   * @param ts The snapshot of where to start execution
      *
      * @throws TransformerException
      */
  @@ -3511,10 +3539,10 @@
     }
   
     /**
  -   * This will execute the following XSLT instructions
  +   * This will reset the stylesheet execution context
      * from the snapshot point.
      *
  -   * NEEDSDOC @param ts
  +   * @param ts The snapshot of where to start execution
      */
     public void resetToStylesheet(TransformSnapshot ts)
     {
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.18.2.8  +14 -0     xml-xalan/java/src/org/apache/xpath/XPath.java
  
  Index: XPath.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/XPath.java,v
  retrieving revision 1.18.2.7
  retrieving revision 1.18.2.8
  diff -u -r1.18.2.7 -r1.18.2.8
  --- XPath.java        2001/06/04 07:52:57     1.18.2.7
  +++ XPath.java        2001/06/08 19:02:09     1.18.2.8
  @@ -230,6 +230,20 @@
     {  
       this(exprString, locator, prefixResolver, type, null);    
     }
  +     
  +     /**
  +   * Construct an XPath object.  The object must be initialized by the
  +   * XPathParser.initXPath method.
  +   *
  +   * @param exp The XPath expression.
  +   *
  +   * @throws javax.xml.transform.TransformerException if syntax or other 
error.
  +   */
  +  public XPath(Expression exp)
  +            throws javax.xml.transform.TransformerException
  +  {  
  +    this.setExpression(exp);    
  +  }
     
     /**
      * <meta name="usage" content="experimental"/>
  
  
  

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

Reply via email to