dmitri 02/05/29 18:57:23
Modified: jxpath/src/java/org/apache/commons/jxpath/ri/axes
PredicateContext.java
jxpath/src/java/org/apache/commons/jxpath/ri/model/beans
DynamicPropertyPointer.java
Log:
Fixed #9482
Revision Changes Path
1.10 +25 -6
jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/axes/PredicateContext.java
Index: PredicateContext.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/axes/PredicateContext.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- PredicateContext.java 8 May 2002 00:40:00 -0000 1.9
+++ PredicateContext.java 30 May 2002 01:57:23 -0000 1.10
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/axes/PredicateContext.java,v
1.9 2002/05/08 00:40:00 dmitri Exp $
- * $Revision: 1.9 $
- * $Date: 2002/05/08 00:40:00 $
+ * $Header:
/home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/axes/PredicateContext.java,v
1.10 2002/05/30 01:57:23 dmitri Exp $
+ * $Revision: 1.10 $
+ * $Date: 2002/05/30 01:57:23 $
*
* ====================================================================
* The Apache Software License, Version 1.1
@@ -75,7 +75,7 @@
* EvalContext that checks predicates.
*
* @author Dmitri Plotnikov
- * @version $Revision: 1.9 $ $Date: 2002/05/08 00:40:00 $
+ * @version $Revision: 1.10 $ $Date: 2002/05/30 01:57:23 $
*/
public class PredicateContext extends EvalContext {
private Expression expression;
@@ -87,7 +87,7 @@
super(parentContext);
this.expression = expression;
if (expression instanceof NameAttributeTest){
- nameTestExpression =
+ nameTestExpression =
((NameAttributeTest)expression).getNameTestExpression();
}
}
@@ -103,6 +103,7 @@
pred = ((NodePointer)pred).getValue();
}
dynamicPropertyPointer.setPropertyName(InfoSetUtil.stringValue(pred));
+ position = 1;
done = true;
return true;
}
@@ -143,6 +144,24 @@
return true;
}
+ public boolean setPosition(int position){
+ if (nameTestExpression == null){
+ return setPositionStandard(position);
+ }
+ else {
+ if (dynamicPropertyPointer == null){
+ if (!setupDynamicPropertyPointer()){
+ return setPositionStandard(position);
+ }
+ }
+ if (position < 1 || position > dynamicPropertyPointer.getLength()){
+ return false;
+ }
+ dynamicPropertyPointer.setIndex(position - 1);
+ return true;
+ }
+ }
+
public NodePointer getCurrentNodePointer(){
if (position == 0){
if (!setPosition(1)){
@@ -167,7 +186,7 @@
return parentContext.nextSet();
}
- public boolean setPosition(int position){
+ private boolean setPositionStandard(int position){
if (this.position > position){
reset();
}
1.7 +10 -4
jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans/DynamicPropertyPointer.java
Index: DynamicPropertyPointer.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans/DynamicPropertyPointer.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DynamicPropertyPointer.java 29 May 2002 00:38:07 -0000 1.6
+++ DynamicPropertyPointer.java 30 May 2002 01:57:23 -0000 1.7
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans/DynamicPropertyPointer.java,v
1.6 2002/05/29 00:38:07 dmitri Exp $
- * $Revision: 1.6 $
- * $Date: 2002/05/29 00:38:07 $
+ * $Header:
/home/cvs/jakarta-commons/jxpath/src/java/org/apache/commons/jxpath/ri/model/beans/DynamicPropertyPointer.java,v
1.7 2002/05/30 01:57:23 dmitri Exp $
+ * $Revision: 1.7 $
+ * $Date: 2002/05/30 01:57:23 $
*
* ====================================================================
* The Apache Software License, Version 1.1
@@ -75,7 +75,7 @@
* Pointer pointing to a property of an object with dynamic properties.
*
* @author Dmitri Plotnikov
- * @version $Revision: 1.6 $ $Date: 2002/05/29 00:38:07 $
+ * @version $Revision: 1.7 $ $Date: 2002/05/30 01:57:23 $
*/
public class DynamicPropertyPointer extends PropertyPointer {
private DynamicPropertyHandler handler;
@@ -330,6 +330,12 @@
public String asPath(){
StringBuffer buffer = new StringBuffer();
buffer.append(getParent().asPath());
+ if (buffer.length() == 0){
+ buffer.append("/.");
+ }
+ else if (buffer.charAt(buffer.length() - 1) == '/'){
+ buffer.append('.');
+ }
buffer.append("[@name='");
buffer.append(escape(getPropertyName()));
buffer.append("']");
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>