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]