You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by dm...@apache.org on 2002/08/10 03:46:19 UTC

cvs commit: jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans CollectionPointer.java

dmitri      2002/08/09 18:46:19

  Modified:    jxpath/src/java/org/apache/commons/jxpath/ri/model/beans
                        CollectionPointer.java
  Log:
  Fixed a problem where the case of index specified was not distinguished from the case of index unspecified
  
  Revision  Changes    Path
  1.5       +29 -6     jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans/CollectionPointer.java
  
  Index: CollectionPointer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans/CollectionPointer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CollectionPointer.java	8 May 2002 23:05:05 -0000	1.4
  +++ CollectionPointer.java	10 Aug 2002 01:46:19 -0000	1.5
  @@ -98,6 +98,10 @@
           return collection;
       }
   
  +    public boolean isNode(){
  +        return index == WHOLE_COLLECTION;
  +    }
  +
       public Object getNodeValue(){
           if (index != WHOLE_COLLECTION){
               return ValueUtils.getValue(collection, index);
  @@ -114,10 +118,20 @@
           }
       }
   
  +    public void setIndex(int index){
  +        super.setIndex(index);
  +        valuePointer = null;
  +    }
  +
       public NodePointer getValuePointer(){
           if (valuePointer == null){
  -            Object value = getNodeValue();
  -            valuePointer = NodePointer.newChildNodePointer(this, getName(), value);
  +            if (index == WHOLE_COLLECTION){
  +                valuePointer = this;
  +            }
  +            else {
  +                Object value = getNodeValue();
  +                valuePointer = NodePointer.newChildNodePointer(this, getName(), value);
  +            }
           }
           return valuePointer;
       }
  @@ -190,14 +204,23 @@
       }
   
       public NodeIterator attributeIterator(QName name){
  +        if (index == WHOLE_COLLECTION){
  +            return null;
  +        }
           return getValuePointer().attributeIterator(name);
       }
   
       public NodeIterator namespaceIterator(){
  +        if (index == WHOLE_COLLECTION){
  +            return null;
  +        }
           return getValuePointer().namespaceIterator();
       }
   
       public NodePointer namespacePointer(String namespace){
  +        if (index == WHOLE_COLLECTION){
  +            return null;
  +        }
           return getValuePointer().namespacePointer(namespace);
       }
   
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>