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