You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sa...@apache.org on 2002/06/21 17:36:01 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java MultiDOM.java
santiagopg 2002/06/21 08:36:01
Modified: java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
MultiDOM.java
Log:
Fixed evaluation of "parent::*" with multiple DOMs.
Revision Changes Path
1.13 +27 -20 xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMAdapter.java
Index: DOMAdapter.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMAdapter.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- DOMAdapter.java 24 Apr 2002 17:03:16 -0000 1.12
+++ DOMAdapter.java 21 Jun 2002 15:36:01 -0000 1.13
@@ -73,6 +73,7 @@
import org.apache.xalan.xsltc.TransletException;
public final class DOMAdapter implements DOM {
+
private final DOMImpl _domImpl;
private short[] _mapping;
private short[] _reverse;
@@ -85,7 +86,8 @@
public DOMAdapter(DOMImpl dom,
String[] namesArray,
- String[] namespaceArray) {
+ String[] namespaceArray)
+ {
_domImpl = dom;
_mapping = dom.getMapping(namesArray);
_reverse = dom.getReverseMapping(namesArray);
@@ -100,7 +102,9 @@
_NSreverse = _domImpl.getReverseNamespaceMapping(namespaces);
}
- /** returns singleton iterator containg the document root */
+ /**
+ * Returns singleton iterator containg the document root
+ */
public NodeIterator getIterator() {
return _domImpl.getIterator();
}
@@ -124,11 +128,11 @@
public NodeIterator getChildren(final int node) {
NodeIterator iterator = _domImpl.getChildren(node);
if (_filter == null) {
- return(iterator.setStartNode(node));
+ return iterator.setStartNode(node);
}
else {
- iterator = _domImpl.strippingIterator(iterator,_mapping,_filter);
- return(iterator.setStartNode(node));
+ iterator = _domImpl.strippingIterator(iterator, _mapping, _filter);
+ return iterator.setStartNode(node);
}
}
@@ -138,9 +142,10 @@
public NodeIterator getTypedChildren(final int type) {
NodeIterator iterator = _domImpl.getTypedChildren(_reverse[type]);
- if ((_reverse[type] == DOM.TEXT) && (_filter != null))
- iterator = _domImpl.strippingIterator(iterator,_mapping,_filter);
- return(iterator);
+ if (_reverse[type] == DOM.TEXT && _filter != null) {
+ return _domImpl.strippingIterator(iterator,_mapping,_filter);
+ }
+ return iterator;
}
public NodeIterator getNamespaceAxisIterator(final int axis, final int ns) {
@@ -150,26 +155,27 @@
public NodeIterator getAxisIterator(final int axis) {
NodeIterator iterator = _domImpl.getAxisIterator(axis);
if (_filter != null) {
- iterator = _domImpl.strippingIterator(iterator,_mapping,_filter);
+ return _domImpl.strippingIterator(iterator, _mapping, _filter);
}
- return(iterator);
+ return iterator;
}
public NodeIterator getTypedAxisIterator(final int axis, final int type) {
NodeIterator iterator;
if (axis == Axis.NAMESPACE) {
- if ((type == NO_TYPE) || (type > _NSreverse.length))
- iterator = _domImpl.getAxisIterator(axis);
- else
- iterator = _domImpl.getTypedAxisIterator(axis,_NSreverse[type]);
+ iterator = (type == NO_TYPE || type > _NSreverse.length) ?
+ _domImpl.getAxisIterator(axis) :
+ _domImpl.getTypedAxisIterator(axis,_NSreverse[type]);
}
- else
+ else {
iterator = _domImpl.getTypedAxisIterator(axis, _reverse[type]);
+ }
- if ((_reverse[type] == DOM.TEXT) && (_filter != null))
- iterator = _domImpl.strippingIterator(iterator,_mapping,_filter);
- return(iterator);
+ if (_reverse[type] == DOM.TEXT && _filter != null) {
+ iterator = _domImpl.strippingIterator(iterator, _mapping, _filter);
+ }
+ return iterator;
}
public NodeIterator getNthDescendant(int type, int n, boolean includeself) {
@@ -177,7 +183,8 @@
}
public NodeIterator getNodeValueIterator(NodeIterator iterator, int type,
- String value, boolean op) {
+ String value, boolean op)
+ {
return _domImpl.getNodeValueIterator(iterator, type, value, op);
}
1.18 +8 -5 xml-xalan/java/src/org/apache/xalan/xsltc/dom/MultiDOM.java
Index: MultiDOM.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/MultiDOM.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- MultiDOM.java 24 Apr 2002 17:03:16 -0000 1.17
+++ MultiDOM.java 21 Jun 2002 15:36:01 -0000 1.18
@@ -76,6 +76,7 @@
import org.apache.xalan.xsltc.runtime.BasisLibrary;
public final class MultiDOM implements DOM {
+
private static final int NO_TYPE = DOM.FIRST_TYPE - 2;
private static final int INITIAL_SIZE = 4;
private static final int CLR = 0x00FFFFFF;
@@ -116,14 +117,14 @@
int dom = node >>> 24;
// consider caching these
- if ((_type == NO_TYPE) || (_type == DOM.ELEMENT)) {
+ if (_type == NO_TYPE) {
_source = _adapters[dom].getAxisIterator(_axis);
}
- else if (_axis == Axis.CHILD) {
+ else if (_axis == Axis.CHILD && _type != ELEMENT) {
_source = _adapters[dom].getTypedChildren(_type);
}
else {
- _source = _adapters[dom].getTypedAxisIterator(_axis,_type);
+ _source = _adapters[dom].getTypedAxisIterator(_axis, _type);
}
_source.setStartNode(node & CLR);
return this;
@@ -290,7 +291,9 @@
return((domIdx.intValue() << 24));
}
- /** returns singleton iterator containg the document root */
+ /**
+ * Returns singleton iterator containg the document root
+ */
public NodeIterator getIterator() {
// main source document @ 0
return _adapters[0].getIterator();
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org