dmitri      2003/01/30 15:41:29

  Modified:    jxpath   build.xml
               jxpath/src/java/org/apache/commons/jxpath/ri/model/beans
                        CollectionPointer.java PropertyIterator.java
               jxpath/src/java/org/apache/commons/jxpath/ri
                        JXPathContextReferenceImpl.java
               jxpath/xdocs/stylesheets project.xml
  Log:
  Fixed bug in root collection iteration
  
  Revision  Changes    Path
  1.18      +2 -2      jakarta-commons/jxpath/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/jxpath/build.xml,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- build.xml 11 Jan 2003 06:22:53 -0000      1.17
  +++ build.xml 30 Jan 2003 23:41:28 -0000      1.18
  @@ -25,7 +25,7 @@
     <property name="component.package"       value="org.apache.commons.jxpath"/>
   
     <!-- The current version number of this component -->
  -  <property name="component.version"       value="1.0"/>
  +  <property name="component.version"       value="1.1b1"/>
   
     <!-- The jar name of this component -->
     <property name="jar.name"
  
  
  
  1.13      +18 -10    
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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- CollectionPointer.java    11 Jan 2003 05:41:24 -0000      1.12
  +++ CollectionPointer.java    30 Jan 2003 23:41:29 -0000      1.13
  @@ -254,15 +254,23 @@
           NodePointer parent = getParent();
           if (parent != null) {
               buffer.append(parent.asPath());
  +            if (index != WHOLE_COLLECTION) {
  +                // Address the list[1][2] case
  +                if (parent.getIndex() != WHOLE_COLLECTION) {
  +                    buffer.append("/.");
  +                }
  +                buffer.append("[").append(index + 1).append(']');
  +            }
           }
  -        if (index != WHOLE_COLLECTION) {
  -            // Address the list[1][2] case
  -            if (parent != null && parent.getIndex() != WHOLE_COLLECTION) {
  -                buffer.append("/.");
  +        else {
  +            if (index != WHOLE_COLLECTION) {
  +                buffer.append("/.[").append(index + 1).append(']');
  +            }
  +            else {
  +                buffer.append("/");
               }
  -            buffer.append("[").append(index + 1).append(']');
           }
  -
  +        
           return buffer.toString();
       }
   }
  
  
  
  1.8       +18 -24    
jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyIterator.java
  
  Index: PropertyIterator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans/PropertyIterator.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- PropertyIterator.java     11 Jan 2003 05:41:25 -0000      1.7
  +++ PropertyIterator.java     30 Jan 2003 23:41:29 -0000      1.8
  @@ -120,7 +120,7 @@
               }
           }
       }
  -    
  +
       protected NodePointer getPropertyPointer() {
           return propertyNodePointer;
       }
  @@ -148,7 +148,18 @@
                   reset();
               }
           }
  -        return getValuePointer();       
  +        try {
  +            NodePointer clone = (NodePointer) propertyNodePointer.clone();
  +            return clone.getValuePointer();
  +        }
  +        catch (Throwable ex) {
  +            // @todo: should this exception be reported in any way?
  +            NullPropertyPointer npp =
  +                new NullPropertyPointer(propertyNodePointer.getParent());
  +            npp.setPropertyName(propertyNodePointer.getPropertyName());
  +            npp.setIndex(propertyNodePointer.getIndex());
  +            return npp.getValuePointer();
  +        }
       }
   
       public int getPosition() {
  @@ -325,29 +336,12 @@
       private int getLength() {
           int length;
           try {
  -            length = propertyNodePointer.getLength();   // TBD: cache length
  +            length = propertyNodePointer.getLength(); // TBD: cache length
           }
           catch (Throwable t) {
               // @todo: should this exception be reported in any way?
               length = 0;
           }
           return length;
  -    }
  -
  -    /**
  -     * Computes value pointer for the current pointer - ignores any exceptions
  -     */
  -    private NodePointer getValuePointer() {
  -        try {
  -            return propertyNodePointer.getValuePointer();
  -        }
  -        catch (Throwable ex) {
  -            // @todo: should this exception be reported in any way?
  -            NullPropertyPointer npp =
  -                new NullPropertyPointer(propertyNodePointer.getParent());
  -            npp.setPropertyName(propertyNodePointer.getPropertyName());
  -            npp.setIndex(propertyNodePointer.getIndex());
  -            return npp.getValuePointer();
  -        }
       }
   }
  
  
  
  1.26      +5 -5      
jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java
  
  Index: JXPathContextReferenceImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- JXPathContextReferenceImpl.java   11 Jan 2003 05:41:22 -0000      1.25
  +++ JXPathContextReferenceImpl.java   30 Jan 2003 23:41:29 -0000      1.26
  @@ -481,7 +481,7 @@
               rootPointer = NodePointer.newNodePointer(new QName(null, "root"),
                   getContextBean(), getLocale());
           }
  -        return rootPointer;
  +        return (Pointer) rootPointer.clone();
       }
   
       private EvalContext getRootContext() {
  
  
  
  1.6       +1 -1      jakarta-commons/jxpath/xdocs/stylesheets/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/jxpath/xdocs/stylesheets/project.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- project.xml       11 Jan 2003 06:22:55 -0000      1.5
  +++ project.xml       30 Jan 2003 23:41:29 -0000      1.6
  @@ -21,7 +21,7 @@
              <item name="Client API&amp;nbsp;Documentation"   
href="/apidocs/org/apache/commons/jxpath/package-summary.html"/>
              <item name="Complete API&amp;nbsp;Docs"        
href="/apidocs/index.html"/>
              <item name="User's Guide"                  href="/users-guide.html"/>
  -           <!-- item name="JXPath Design"                 href="/design.html"/ -->
  +           <item name="Release Notes"                 
href="/release-notes-1.1.html"/>
          </menu>
          <menu name="Project Files">
              <item name="Status"                        
href="http://cvs.apache.org/viewcvs/~checkout~/jakarta-commons/jxpath/STATUS.html?content-type=text/html"/>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to