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&nbsp;Documentation" href="/apidocs/org/apache/commons/jxpath/package-summary.html"/> <item name="Complete API&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]