You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sb...@apache.org on 2002/03/24 01:57:54 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/transformer TransformerImpl.java
sboag 02/03/23 16:57:54
Modified: java/src/org/apache/xalan/templates ElemApplyImport.java
ElemApplyTemplates.java ElemAttribute.java
ElemCallTemplate.java ElemChoose.java
ElemComment.java ElemCopy.java ElemCopyOf.java
ElemFallback.java ElemForEach.java ElemIf.java
ElemMessage.java ElemNumber.java ElemPI.java
ElemParam.java ElemTemplate.java
ElemTextLiteral.java ElemUse.java ElemValueOf.java
ElemVariable.java
java/src/org/apache/xalan/trace TraceListenerEx.java
TraceManager.java
java/src/org/apache/xalan/transformer TransformerImpl.java
Added: java/src/org/apache/xalan/trace TraceListenerEx2.java
Log:
Implemented TraceListenerEx2, which extends TraceListenerEx to add
the traceEnd event.
Modified all existing templates that call fireTraceEvent to also call
fireTraceEndEvent at the appropriate time.
Note that there was a bad incompatibility between xsl:for-each and
xsl:if, which was called whether the test was successful or not.
With the current logic of xsl:for-each,
if the node-set is empty trace will not be called at all.
So I've changed xsl:if to match the xsl:for-each behavior.
Revision Changes Path
1.10 +2 -0 xml-xalan/java/src/org/apache/xalan/templates/ElemApplyImport.java
Index: ElemApplyImport.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemApplyImport.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ElemApplyImport.java 12 Jun 2001 19:15:06 -0000 1.9
+++ ElemApplyImport.java 24 Mar 2002 00:57:52 -0000 1.10
@@ -134,6 +134,8 @@
transformer.getMsgMgr().error(this,
XSLTErrorResources.ER_NULL_SOURCENODE_APPLYIMPORTS); //"sourceNode is null in xsl:apply-imports!");
}
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
/**
1.21 +9 -3 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.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- ElemApplyTemplates.java 22 Mar 2002 01:04:40 -0000 1.20
+++ ElemApplyTemplates.java 24 Mar 2002 00:57:52 -0000 1.21
@@ -204,9 +204,6 @@
try
{
- if (TransformerImpl.S_DEBUG)
- transformer.getTraceManager().fireTraceEvent(this);
-
// %REVIEW% Do we need this check??
// if (null != sourceNode)
// {
@@ -223,10 +220,16 @@
transformer.pushMode(m_mode);
}
}
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEvent(this);
+
transformSelectedNodes(transformer);
}
finally
{
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
+
if (pushMode)
transformer.popMode();
@@ -422,6 +425,9 @@
t.execute(transformer);
}
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
+
if(template.m_frameSize > 0)
vars.unlink();
1.17 +2 -0 xml-xalan/java/src/org/apache/xalan/templates/ElemAttribute.java
Index: ElemAttribute.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemAttribute.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- ElemAttribute.java 22 Mar 2002 01:04:40 -0000 1.16
+++ ElemAttribute.java 24 Mar 2002 00:57:52 -0000 1.17
@@ -137,6 +137,8 @@
XSLTErrorResources.WG_ILLEGAL_ATTRIBUTE,
new Object[]{ attrName });
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
return;
// warn(templateChild, sourceNode, "Trying to add attribute after element child has been added, ignoring...");
1.21 +4 -0 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.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- ElemCallTemplate.java 22 Mar 2002 01:04:40 -0000 1.20
+++ ElemCallTemplate.java 24 Mar 2002 00:57:52 -0000 1.21
@@ -293,6 +293,10 @@
transformer.getMsgMgr().error(this, XSLTErrorResources.ER_TEMPLATE_NOT_FOUND,
new Object[]{ m_templateName }); //"Could not find template named: '"+templateName+"'");
}
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
+
}
/** Vector of xsl:param elements associated with this element.
1.14 +8 -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.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- ElemChoose.java 22 Mar 2002 01:04:40 -0000 1.13
+++ ElemChoose.java 24 Mar 2002 00:57:52 -0000 1.14
@@ -158,8 +158,11 @@
if (test.bool())
{
transformer.getTraceManager().fireTraceEvent(when);
+
transformer.executeChildTemplates(when, true);
+ transformer.getTraceManager().fireTraceEndEvent(when);
+
return;
}
@@ -181,6 +184,8 @@
// xsl:otherwise
transformer.executeChildTemplates(childElem, true);
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(childElem);
return;
}
}
@@ -188,6 +193,9 @@
if (!found)
transformer.getMsgMgr().error(
this, XSLTErrorResources.ER_CHOOSE_REQUIRES_WHEN);
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
/**
1.9 +7 -3 xml-xalan/java/src/org/apache/xalan/templates/ElemComment.java
Index: ElemComment.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemComment.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ElemComment.java 12 Jun 2001 19:15:08 -0000 1.8
+++ ElemComment.java 24 Mar 2002 00:57:52 -0000 1.9
@@ -115,11 +115,10 @@
TransformerImpl transformer)
throws TransformerException
{
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEvent(this);
try
{
- if (TransformerImpl.S_DEBUG)
- transformer.getTraceManager().fireTraceEvent(this);
-
// Note the content model is:
// <!ENTITY % instructions "
// %char-instructions;
@@ -135,6 +134,11 @@
catch(org.xml.sax.SAXException se)
{
throw new TransformerException(se);
+ }
+ finally
+ {
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
}
1.15 +9 -6 xml-xalan/java/src/org/apache/xalan/templates/ElemCopy.java
Index: ElemCopy.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemCopy.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ElemCopy.java 12 Jun 2001 19:15:09 -0000 1.14
+++ ElemCopy.java 24 Mar 2002 00:57:52 -0000 1.15
@@ -148,6 +148,9 @@
{
ResultTreeHandler rthandler = transformer.getResultTreeHandler();
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEvent(this);
+
// TODO: Process the use-attribute-sets stuff
ClonerToResultTree.cloneToResultTree(sourceNode, nodeType, dtm,
rthandler, false);
@@ -163,11 +166,8 @@
transformer.getResultTreeHandler().endElement(ns, localName,
dtm.getNodeName(sourceNode));
}
- else
- {
- if (TransformerImpl.S_DEBUG)
- transformer.getTraceManager().fireTraceEvent(this);
- }
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
else
{
@@ -176,13 +176,16 @@
super.execute(transformer);
transformer.executeChildTemplates(this, true);
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
}
catch(org.xml.sax.SAXException se)
{
throw new TransformerException(se);
}
- finally
+ finally
{
xctxt.popCurrentNode();
}
1.14 +7 -3 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.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- ElemCopyOf.java 22 Mar 2002 01:04:40 -0000 1.13
+++ ElemCopyOf.java 24 Mar 2002 00:57:52 -0000 1.14
@@ -166,12 +166,11 @@
TransformerImpl transformer)
throws TransformerException
{
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEvent(this);
try
{
- if (TransformerImpl.S_DEBUG)
- transformer.getTraceManager().fireTraceEvent(this);
-
XPathContext xctxt = transformer.getXPathContext();
int sourceNode = xctxt.getCurrentNode();
XObject value = m_selectExpression.execute(xctxt, sourceNode, this);
@@ -253,6 +252,11 @@
catch(org.xml.sax.SAXException se)
{
throw new TransformerException(se);
+ }
+ finally
+ {
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
}
1.12 +2 -0 xml-xalan/java/src/org/apache/xalan/templates/ElemFallback.java
Index: ElemFallback.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemFallback.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ElemFallback.java 12 Jun 2001 19:15:09 -0000 1.11
+++ ElemFallback.java 24 Mar 2002 00:57:52 -0000 1.12
@@ -146,6 +146,8 @@
transformer.executeChildTemplates(this, true);
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
else
{
1.26 +9 -4 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.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- ElemForEach.java 22 Mar 2002 01:04:40 -0000 1.25
+++ ElemForEach.java 24 Mar 2002 00:57:52 -0000 1.26
@@ -291,17 +291,18 @@
public void execute(TransformerImpl transformer) throws TransformerException
{
- transformer.pushCurrentTemplateRuleIsNull(true);
+ transformer.pushCurrentTemplateRuleIsNull(true);
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEvent(this);
try
{
- if (TransformerImpl.S_DEBUG)
- transformer.getTraceManager().fireTraceEvent(this);
-
transformSelectedNodes(transformer);
}
finally
{
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
transformer.popCurrentTemplateRuleIsNull();
}
}
@@ -440,6 +441,10 @@
transformer.setCurrentElement(t);
t.execute(transformer);
}
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
+
// KLUGE: Implement <?xalan:doc_cache_off?>
// ASSUMPTION: This will be set only when the XPath was indeed
1.12 +14 -3 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.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ElemIf.java 22 Mar 2002 01:04:40 -0000 1.11
+++ ElemIf.java 24 Mar 2002 00:57:53 -0000 1.12
@@ -171,9 +171,6 @@
public void execute(TransformerImpl transformer) throws TransformerException
{
- if (TransformerImpl.S_DEBUG)
- transformer.getTraceManager().fireTraceEvent(this);
-
XPathContext xctxt = transformer.getXPathContext();
int sourceNode = xctxt.getCurrentNode();
@@ -187,7 +184,20 @@
if (test.bool())
{
+ // Note that there was a bad incompatibility with xsl:if...
+ // which was called whether the test was successful or not.
+ // With the current logic of xsl:for-each,
+ // if the node-set is empty trace will not be called at all.
+ // So I've changed xsl:if to match the xsl:for-each behavior.
+ // -sb
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEvent(this);
+
transformer.executeChildTemplates(this, true);
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
// I don't think we want this. -sb
@@ -199,6 +209,7 @@
{
transformer.executeChildTemplates(this, true);
}
+
}
/**
1.13 +3 -0 xml-xalan/java/src/org/apache/xalan/templates/ElemMessage.java
Index: ElemMessage.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemMessage.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ElemMessage.java 28 Jul 2001 00:25:58 -0000 1.12
+++ ElemMessage.java 24 Mar 2002 00:57:53 -0000 1.13
@@ -166,5 +166,8 @@
if(m_terminate)
transformer.getErrorListener().fatalError(new TransformerException(XSLMessages.createMessage(XSLTErrorResources.ER_STYLESHEET_DIRECTED_TERMINATION, null))); //"Stylesheet directed termination"));
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
}
1.24 +5 -0 xml-xalan/java/src/org/apache/xalan/templates/ElemNumber.java
Index: ElemNumber.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemNumber.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- ElemNumber.java 22 Mar 2002 01:04:40 -0000 1.23
+++ ElemNumber.java 24 Mar 2002 00:57:53 -0000 1.24
@@ -559,6 +559,11 @@
{
throw new TransformerException(se);
}
+ finally
+ {
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
+ }
}
/**
1.12 +3 -0 xml-xalan/java/src/org/apache/xalan/templates/ElemPI.java
Index: ElemPI.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemPI.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ElemPI.java 15 Jun 2001 05:13:55 -0000 1.11
+++ ElemPI.java 24 Mar 2002 00:57:53 -0000 1.12
@@ -203,6 +203,9 @@
{
throw new TransformerException(se);
}
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
/**
1.12 +3 -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.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ElemParam.java 12 Jun 2001 19:15:10 -0000 1.11
+++ ElemParam.java 24 Mar 2002 00:57:53 -0000 1.12
@@ -163,6 +163,9 @@
// transformer.getXPathContext().getVarStack().pushVariable(m_qname, var);
transformer.getXPathContext().getVarStack().setLocalVariable(m_index, var);
}
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
}
1.15 +6 -3 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.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ElemTemplate.java 23 Jan 2002 22:53:46 -0000 1.14
+++ ElemTemplate.java 24 Mar 2002 00:57:53 -0000 1.15
@@ -420,12 +420,12 @@
TransformerImpl transformer)
throws TransformerException
{
- if (TransformerImpl.S_DEBUG)
- transformer.getTraceManager().fireTraceEvent(this);
-
XPathContext xctxt = transformer.getXPathContext();
xctxt.pushRTFContext();
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEvent(this);
+
// %REVIEW% commenting out of the code below.
// if (null != sourceNode)
// {
@@ -439,6 +439,9 @@
//
// //"sourceNode is null in handleApplyTemplatesInstruction!");
// }
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
xctxt.popRTFContext();
}
1.10 +7 -3 xml-xalan/java/src/org/apache/xalan/templates/ElemTextLiteral.java
Index: ElemTextLiteral.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemTextLiteral.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ElemTextLiteral.java 12 Jun 2001 19:15:11 -0000 1.9
+++ ElemTextLiteral.java 24 Mar 2002 00:57:53 -0000 1.10
@@ -242,11 +242,10 @@
TransformerImpl transformer)
throws TransformerException
{
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEvent(this);
try
{
- if (TransformerImpl.S_DEBUG)
- transformer.getTraceManager().fireTraceEvent(this);
-
ResultTreeHandler rth = transformer.getResultTreeHandler();
if (m_disableOutputEscaping)
{
@@ -263,6 +262,11 @@
catch(SAXException se)
{
throw new TransformerException(se);
+ }
+ finally
+ {
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
}
}
1.13 +3 -0 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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ElemUse.java 17 Sep 2001 20:20:51 -0000 1.12
+++ ElemUse.java 24 Mar 2002 00:57:53 -0000 1.13
@@ -242,5 +242,8 @@
applyAttrSets(transformer, getStylesheetRoot(),
m_attributeSetsNames);
}
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
}
1.18 +9 -4 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.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- ElemValueOf.java 22 Mar 2002 01:04:40 -0000 1.17
+++ ElemValueOf.java 24 Mar 2002 00:57:53 -0000 1.18
@@ -260,13 +260,13 @@
XPathContext xctxt = transformer.getXPathContext();
ResultTreeHandler rth = transformer.getResultTreeHandler();
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEvent(this);
+
try
{
- if (TransformerImpl.S_DEBUG)
- transformer.getTraceManager().fireTraceEvent(this);
-
// Optimize for "."
- if (false && m_isDot &&!TransformerImpl.S_DEBUG)
+ if (false && m_isDot && !TransformerImpl.S_DEBUG)
{
int child = xctxt.getCurrentNode();
DTM dtm = xctxt.getDTM(child);
@@ -333,6 +333,11 @@
catch (SAXException se)
{
throw new TransformerException(se);
+ }
+ finally
+ {
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
}
1.16 +3 -0 xml-xalan/java/src/org/apache/xalan/templates/ElemVariable.java
Index: ElemVariable.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemVariable.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- ElemVariable.java 22 Mar 2002 01:04:40 -0000 1.15
+++ ElemVariable.java 24 Mar 2002 00:57:53 -0000 1.16
@@ -284,6 +284,9 @@
// transformer.getXPathContext().getVarStack().pushVariable(m_qname, var);
transformer.getXPathContext().getVarStack().setLocalVariable(m_index, var);
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireTraceEndEvent(this);
}
/**
1.3 +57 -1 xml-xalan/java/src/org/apache/xalan/trace/TraceListenerEx.java
Index: TraceListenerEx.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/trace/TraceListenerEx.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TraceListenerEx.java 12 Jun 2001 19:15:24 -0000 1.2
+++ TraceListenerEx.java 24 Mar 2002 00:57:53 -0000 1.3
@@ -1,3 +1,59 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ *
+ * Copyright (c) 2002 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Xalan" and "Apache Software Foundation" must
+ * not be used to endorse or promote products derived from this
+ * software without prior written permission. For written
+ * permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation and was
+ * originally based on software copyright (c) 1999, Lotus
+ * Development Corporation., http://www.lotus.com. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
package org.apache.xalan.trace;
/**
@@ -17,4 +73,4 @@
*/
public void selectEnd(EndSelectionEvent ev) throws javax.xml.transform.TransformerException;
-}
\ No newline at end of file
+}
1.11 +48 -0 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.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- TraceManager.java 22 Mar 2002 01:04:41 -0000 1.10
+++ TraceManager.java 24 Mar 2002 00:57:53 -0000 1.11
@@ -178,6 +178,54 @@
}
/**
+ * Fire a end trace event, after all children of an element have been
+ * executed.
+ *
+ * @param sourceNode Current source node
+ * @param mode Template mode
+ * @param styleNode Stylesheet template node
+ */
+ public void fireTraceEndEvent(ElemTemplateElement styleNode)
+ {
+
+ if (hasTraceListeners())
+ {
+ int sourceNode = m_transformer.getXPathContext().getCurrentNode();
+ Node source = m_transformer.getXPathContext().getDTM(
+ sourceNode).getNode(sourceNode);
+
+ fireTraceEndEvent(new TracerEvent(m_transformer, source,
+ m_transformer.getMode(), /*sourceNode, mode,*/
+ styleNode));
+ }
+ }
+
+ /**
+ * Fire a trace event.
+ *
+ * @param te Trace event to fire
+ */
+ public void fireTraceEndEvent(TracerEvent te)
+ {
+
+ if (hasTraceListeners())
+ {
+ int nListeners = m_traceListeners.size();
+
+ for (int i = 0; i < nListeners; i++)
+ {
+ TraceListener tl = (TraceListener) m_traceListeners.elementAt(i);
+ if(tl instanceof TraceListenerEx2)
+ {
+ ((TraceListenerEx2)tl).traceEnd(te);
+ }
+ }
+ }
+ }
+
+
+
+ /**
* Fire a trace event.
*
* @param te Trace event to fire
1.1 xml-xalan/java/src/org/apache/xalan/trace/TraceListenerEx2.java
Index: TraceListenerEx2.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xalan" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, Lotus
* Development Corporation., http://www.lotus.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.xalan.trace;
/**
* <meta name="usage" content="advanced"/>
* Extends TraceListenerEx but adds a EndTrace event.
*/
public interface TraceListenerEx2 extends TraceListenerEx
{
/**
* Method that is called when a trace event occurs.
* The method is blocking. It must return before processing continues.
*
* @param ev the trace event.
*/
public void traceEnd(TracerEvent ev);
}
1.126 +5 -2 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.125
retrieving revision 1.126
diff -u -r1.125 -r1.126
--- TransformerImpl.java 4 Mar 2002 18:21:31 -0000 1.125
+++ TransformerImpl.java 24 Mar 2002 00:57:53 -0000 1.126
@@ -2090,8 +2090,8 @@
// Fire a trace event for the template.
- if (TransformerImpl.S_DEBUG)
- getTraceManager().fireTraceEvent(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.
@@ -2105,6 +2105,9 @@
// m_xcontext.getVarStack().link();
m_xcontext.getVarStack().link(template.m_frameSize);
executeChildTemplates(template, true);
+
+ if (TransformerImpl.S_DEBUG)
+ getTraceManager().fireTraceEndEvent(template);
}
}
catch (org.xml.sax.SAXException se)
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org