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...@locus.apache.org on 2000/08/08 02:27:35 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/utils NodeConsumer.java TreeWalker.java
sboag 00/08/07 17:27:35
Modified: java/src/org/apache/xalan/processor
ProcessorAttributeSet.java ProcessorCharacters.java
ProcessorKey.java ProcessorLRE.java
ProcessorStylesheetElement.java
ProcessorTemplate.java ProcessorTemplateElem.java
ProcessorText.java StylesheetHandler.java
java/src/org/apache/xalan/templates ElemTemplateElement.java
java/src/org/apache/xalan/utils TreeWalker.java
Added: java/src/org/apache/xalan/utils NodeConsumer.java
Log:
Added the ability to get the originating node from a ElemTemplateElement, if the stylesheet was created via a DOM. For tooling support.
Revision Changes Path
1.2 +1 -0 xml-xalan/java/src/org/apache/xalan/processor/ProcessorAttributeSet.java
Index: ProcessorAttributeSet.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorAttributeSet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProcessorAttributeSet.java 2000/06/19 16:52:05 1.1
+++ ProcessorAttributeSet.java 2000/08/08 00:27:16 1.2
@@ -98,6 +98,7 @@
ElemAttributeSet eat = new ElemAttributeSet();
eat.setLocaterInfo(handler.getLocator());
eat.setPrefixes(handler.getNamespaceSupport());
+ eat.setDOMBackPointer(handler.getOriginatingNode());
setPropertiesFromAttributes(handler, rawName, attributes, eat);
1.2 +1 -0 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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProcessorCharacters.java 2000/06/19 16:52:05 1.1
+++ ProcessorCharacters.java 2000/08/08 00:27:17 1.2
@@ -85,6 +85,7 @@
((null != m_xslTextElement) || !isWhiteSpace(m_accumulator)))
{
ElemTextLiteral elem = new ElemTextLiteral();
+ elem.setDOMBackPointer(handler.getOriginatingNode());
elem.setLocaterInfo(handler.getLocator());
elem.setPrefixes(handler.getNamespaceSupport());
boolean doe = (null != m_xslTextElement)
1.2 +1 -0 xml-xalan/java/src/org/apache/xalan/processor/ProcessorKey.java
Index: ProcessorKey.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorKey.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProcessorKey.java 2000/06/19 16:52:07 1.1
+++ ProcessorKey.java 2000/08/08 00:27:17 1.2
@@ -104,6 +104,7 @@
throws SAXException
{
KeyDeclaration kd = new KeyDeclaration();
+ kd.setDOMBackPointer(handler.getOriginatingNode());
kd.setLocaterInfo(handler.getLocator());
setPropertiesFromAttributes(handler, rawName, attributes, kd);
1.3 +1 -0 xml-xalan/java/src/org/apache/xalan/processor/ProcessorLRE.java
Index: ProcessorLRE.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorLRE.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ProcessorLRE.java 2000/07/31 22:09:07 1.2
+++ ProcessorLRE.java 2000/08/08 00:27:21 1.3
@@ -112,6 +112,7 @@
}
else
elem = (ElemLiteralResult)classObject.newInstance();
+ elem.setDOMBackPointer(handler.getOriginatingNode());
elem.setLocaterInfo(handler.getLocator());
elem.setPrefixes(handler.getNamespaceSupport());
elem.setNamespace(uri);
1.2 +1 -0 xml-xalan/java/src/org/apache/xalan/processor/ProcessorStylesheetElement.java
Index: ProcessorStylesheetElement.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorStylesheetElement.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProcessorStylesheetElement.java 2000/06/19 16:52:13 1.1
+++ ProcessorStylesheetElement.java 2000/08/08 00:27:21 1.2
@@ -119,6 +119,7 @@
parent.setInclude(stylesheet);
}
}
+ stylesheet.setDOMBackPointer(handler.getOriginatingNode());
stylesheet.setLocaterInfo(handler.getLocator());
stylesheet.setPrefixes(handler.getNamespaceSupport());
1.2 +1 -0 xml-xalan/java/src/org/apache/xalan/processor/ProcessorTemplate.java
Index: ProcessorTemplate.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorTemplate.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProcessorTemplate.java 2000/06/19 16:52:13 1.1
+++ ProcessorTemplate.java 2000/08/08 00:27:21 1.2
@@ -76,6 +76,7 @@
throws SAXException
{
super.appendAndPush(handler, elem);
+ elem.setDOMBackPointer(handler.getOriginatingNode());
handler.getStylesheet().setTemplate((ElemTemplate)elem);
}
}
1.2 +1 -0 xml-xalan/java/src/org/apache/xalan/processor/ProcessorTemplateElem.java
Index: ProcessorTemplateElem.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorTemplateElem.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProcessorTemplateElem.java 2000/06/19 16:52:13 1.1
+++ ProcessorTemplateElem.java 2000/08/08 00:27:22 1.2
@@ -94,6 +94,7 @@
try
{
elem = (ElemTemplateElement)classObject.newInstance();
+ elem.setDOMBackPointer(handler.getOriginatingNode());
elem.setLocaterInfo(handler.getLocator());
elem.setPrefixes(handler.getNamespaceSupport());
}
1.2 +1 -0 xml-xalan/java/src/org/apache/xalan/processor/ProcessorText.java
Index: ProcessorText.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorText.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProcessorText.java 2000/06/19 16:52:14 1.1
+++ ProcessorText.java 2000/08/08 00:27:22 1.2
@@ -82,6 +82,7 @@
charProcessor.setXslTextElement((ElemText)elem);
ElemTemplateElement parent = handler.getElemTemplateElement();
parent.appendChild(elem);
+ elem.setDOMBackPointer(handler.getOriginatingNode());
}
/**
1.8 +22 -1 xml-xalan/java/src/org/apache/xalan/processor/StylesheetHandler.java
Index: StylesheetHandler.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/StylesheetHandler.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- StylesheetHandler.java 2000/08/07 21:31:13 1.7
+++ StylesheetHandler.java 2000/08/08 00:27:22 1.8
@@ -62,6 +62,7 @@
import org.apache.xalan.templates.ElemTemplateElement;
import org.apache.xalan.templates.StylesheetRoot;
import org.apache.xalan.templates.Stylesheet;
+import org.apache.xalan.utils.NodeConsumer;
import trax.ProcessorException;
import trax.TemplatesBuilder;
import trax.Templates;
@@ -84,6 +85,7 @@
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
+import org.w3c.dom.Node;
/**
@@ -95,7 +97,8 @@
*/
public class StylesheetHandler
implements EntityResolver, DTDHandler,
- ContentHandler, ErrorHandler, TemplatesBuilder, PrefixResolver
+ ContentHandler, ErrorHandler, TemplatesBuilder, PrefixResolver,
+ NodeConsumer
{
static boolean m_xpathFunctionsInited = false;
@@ -1013,4 +1016,22 @@
return m_nsSupport;
}
+ private Node m_originatingNode;
+
+ /**
+ * Set the node that is originating the SAX event.
+ */
+ public void setOriginatingNode(Node n)
+ {
+ m_originatingNode = n;
+ }
+
+ /**
+ * Set the node that is originating the SAX event.
+ */
+ public Node getOriginatingNode()
+ {
+ return m_originatingNode;
+ }
+
}
1.5 +21 -0 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.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ElemTemplateElement.java 2000/07/30 22:49:12 1.4
+++ ElemTemplateElement.java 2000/08/08 00:27:32 1.5
@@ -775,6 +775,27 @@
}
return lastChild;
}
+
+ private Node m_DOMBackPointer;
+
+ /**
+ * If this stylesheet was created from a DOM, get the
+ * DOM backpointer that this element originated from.
+ * For tooling use.
+ */
+ public Node getDOMBackPointer()
+ {
+ return m_DOMBackPointer;
+ }
+ /**
+ * If this stylesheet was created from a DOM, set the
+ * DOM backpointer that this element originated from.
+ * For tooling use.
+ */
+ public void setDOMBackPointer(Node n)
+ {
+ m_DOMBackPointer = n;
+ }
}
1.4 +5 -0 xml-xalan/java/src/org/apache/xalan/utils/TreeWalker.java
Index: TreeWalker.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/utils/TreeWalker.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TreeWalker.java 2000/08/07 21:33:59 1.3
+++ TreeWalker.java 2000/08/08 00:27:34 1.4
@@ -61,6 +61,7 @@
import org.xml.sax.ext.LexicalHandler;
import org.apache.xpath.DOM2Helper;
import org.apache.xpath.DOMHelper;
+import org.apache.xalan.utils.NodeConsumer;
/**
* <meta name="usage" content="advanced"/>
@@ -177,6 +178,10 @@
protected void startNode(Node node)
throws SAXException
{
+ if(m_contentHandler instanceof NodeConsumer)
+ {
+ ((NodeConsumer)m_contentHandler).setOriginatingNode(node);
+ }
switch(node.getNodeType())
{
case Node.COMMENT_NODE:
1.1 xml-xalan/java/src/org/apache/xalan/utils/NodeConsumer.java
Index: NodeConsumer.java
===================================================================
package org.apache.xalan.utils;
import org.w3c.dom.Node;
/**
* The tree walker will test for this interface, and call
* setOriginatingNode before calling the SAX event. For creating
* DOM backpointers for things that are normally created via
* SAX events.
*/
public interface NodeConsumer
{
/**
* Set the node that is originating the SAX event.
*/
public void setOriginatingNode(Node n);
}