sboag       02/03/24 05:50:12

  Modified:    java/src/org/apache/xalan/transformer TransformerImpl.java
  Log:
  Added getElementCallstack() and getTemplateCallstack() methods, for support
  of xsl debuggers.
  
  Revision  Changes    Path
  1.127     +51 -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.126
  retrieving revision 1.127
  diff -u -r1.126 -r1.127
  --- TransformerImpl.java      24 Mar 2002 00:57:53 -0000      1.126
  +++ TransformerImpl.java      24 Mar 2002 13:50:12 -0000      1.127
  @@ -2323,6 +2323,10 @@
       for (int i = 0; i < nElems; i++)
       {
         ElemSort sort = foreach.getSortElem(i);
  +      
  +      if (TransformerImpl.S_DEBUG)
  +        getTraceManager().fireTraceEvent(sort);
  +     
         String langString =
           (null != sort.getLang())
           ? sort.getLang().evaluate(xctxt, sourceNodeContext, foreach) : null;
  @@ -2382,7 +2386,9 @@
         keys.addElement(new NodeSortKey(this, sort.getSelect(), treatAsNumbers,
                                         descending, langString, caseOrderUpper,
                                         foreach));
  -    }
  +      if (TransformerImpl.S_DEBUG)
  +        getTraceManager().fireTraceEndEvent(sort);
  +     }
   
       return keys;
     }
  @@ -2390,6 +2396,27 @@
     //==========================================================
     // SECTION: TransformState implementation
     //==========================================================
  +  
  +  /**
  +   * Get the stack of ElemTemplateElements.
  +   * 
  +   * @return A copy of stack that contains the xsl element instructions, 
  +   * the earliest called in index zero, and the latest called in index 
size()-1.
  +   */
  +  public Vector getElementCallstack()
  +  {
  +     Vector elems = new Vector();
  +     int nStackSize = m_currentTemplateElementsTop;
  +     for(int i = 0; i < nStackSize; i++)
  +     {
  +             ElemTemplateElement elem = m_currentTemplateElements[i];
  +             if(null != elem)
  +             {
  +                     elems.addElement(elem);
  +             }
  +     }
  +     return elems;
  +  }
   
     /**
      * Push the current template element.
  @@ -2444,6 +2471,29 @@
     {
       return m_xcontext.getCurrentNode();
     }
  +  
  +  /**
  +   * Get the call stack of xsl:template elements.
  +   * 
  +   * @return A copy of stack that contains the xsl:template 
  +   * (ElemTemplate) instructions, the earliest called in index 
  +   * zero, and the latest called in index size()-1.
  +   */
  +  public Vector getTemplateCallstack()
  +  {
  +     Vector elems = new Vector();
  +     int nStackSize = m_currentTemplateElementsTop;
  +     for(int i = 0; i < nStackSize; i++)
  +     {
  +             ElemTemplateElement elem = m_currentTemplateElements[i];
  +             if(null != elem && (elem.getXSLToken() != 
Constants.ELEMNAME_TEMPLATE))
  +             {
  +                     elems.addElement(elem);
  +             }
  +     }
  +     return elems;
  +  }
  +
   
     /**
      * This method retrieves the xsl:template
  
  
  

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

Reply via email to