You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2009/12/18 06:40:53 UTC

svn commit: r892147 - in /ofbiz/trunk/framework/sql/src/org/ofbiz/sql: BetweenCondition.java ListCondition.java ListValue.java Parser.jj

Author: doogie
Date: Fri Dec 18 05:40:52 2009
New Revision: 892147

URL: http://svn.apache.org/viewvc?rev=892147&view=rev
Log:
Remove ListValue, in preference of a more accurate object model
representation.

Added:
    ofbiz/trunk/framework/sql/src/org/ofbiz/sql/BetweenCondition.java
      - copied, changed from r892146, ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListValue.java
    ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListCondition.java
      - copied, changed from r892146, ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListValue.java
Removed:
    ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListValue.java
Modified:
    ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj

Copied: ofbiz/trunk/framework/sql/src/org/ofbiz/sql/BetweenCondition.java (from r892146, ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListValue.java)
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/sql/src/org/ofbiz/sql/BetweenCondition.java?p2=ofbiz/trunk/framework/sql/src/org/ofbiz/sql/BetweenCondition.java&p1=ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListValue.java&r1=892146&r2=892147&rev=892147&view=diff
==============================================================================
--- ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListValue.java (original)
+++ ofbiz/trunk/framework/sql/src/org/ofbiz/sql/BetweenCondition.java Fri Dec 18 05:40:52 2009
@@ -18,26 +18,35 @@
  */
 package org.ofbiz.sql;
 
-import java.util.Iterator;
-import java.util.List;
-
-import org.ofbiz.base.util.StringUtil;
+public final class BetweenCondition extends Condition {
+    private final Value left;
+    private final Value r1;
+    private final Value r2;
+
+    public BetweenCondition(Value left, Value r1, Value r2) {
+        this.left = left;
+        this.r1 = r1;
+        this.r2 = r2;
+    }
 
-public final class ListValue extends Value implements Iterable<Value> {
-    private final List<Value> values;
+    public Value getLeft() {
+        return left;
+    }
 
-    public ListValue(List<Value> values) {
-        this.values = values;
+    public Value getR1() {
+        return r1;
     }
 
-    public Iterator<Value> iterator() {
-        return values.iterator();
+    public Value getR2() {
+        return r2;
     }
 
     public StringBuilder appendTo(StringBuilder sb) {
-        sb.append('(');
-        StringUtil.appendTo(sb, values, null, null, ", ");
-        sb.append(')');
+        left.appendTo(sb);
+        sb.append(" BETWEEN ");
+        r1.appendTo(sb);
+        sb.append(" AND ");
+        r2.appendTo(sb);
         return sb;
     }
 }

Copied: ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListCondition.java (from r892146, ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListValue.java)
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListCondition.java?p2=ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListCondition.java&p1=ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListValue.java&r1=892146&r2=892147&rev=892147&view=diff
==============================================================================
--- ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListValue.java (original)
+++ ofbiz/trunk/framework/sql/src/org/ofbiz/sql/ListCondition.java Fri Dec 18 05:40:52 2009
@@ -18,26 +18,37 @@
  */
 package org.ofbiz.sql;
 
-import java.util.Iterator;
 import java.util.List;
 
 import org.ofbiz.base.util.StringUtil;
 
-public final class ListValue extends Value implements Iterable<Value> {
+public final class ListCondition extends Condition {
+    private final Value left;
+    private final String op;
     private final List<Value> values;
 
-    public ListValue(List<Value> values) {
+    public ListCondition(Value left, String op, List<Value> values) {
+        this.left = left;
+        this.op = op;
         this.values = values;
     }
 
-    public Iterator<Value> iterator() {
-        return values.iterator();
+    public Value getLeft() {
+        return left;
+    }
+
+    public String getOp() {
+        return op;
+    }
+
+    public List<Value> getValues() {
+        return values;
     }
 
     public StringBuilder appendTo(StringBuilder sb) {
-        sb.append('(');
+        left.appendTo(sb);
+        sb.append(' ').append(op).append(' ');
         StringUtil.appendTo(sb, values, null, null, ", ");
-        sb.append(')');
         return sb;
     }
 }

Modified: ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj?rev=892147&r1=892146&r2=892147&view=diff
==============================================================================
--- ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj (original)
+++ ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj Fri Dec 18 05:40:52 2009
@@ -757,7 +757,7 @@
 
 private Condition BooleanExpression():
 {
-	Value v1, v2, v;
+	Value v1, v2, v, r1, r2;
 	String op;
 	Condition c;
 	List<Value> list = FastList.newInstance();
@@ -765,10 +765,10 @@
 {
 	v1=Value() (
 		<BETWEEN>
-		v=RightValue() { list.add(v); }
+		r1=RightValue()
 		<AND>
-		v=RightValue() { list.add(v); }
-		{ v2 = new ListValue(list); op = "between"; }
+		r2=RightValue()
+		{ return new BetweenCondition(v1, r1, r2); }
 	| <IS> (
 		<NULL> { op = "="; v2 = Value.NULL; }
 		| <NOT> <NULL> { op = "!="; v2 = Value.NULL; }
@@ -779,7 +779,7 @@
 			v=RightValue() { list.add(v); }
 			( <COMMA> v=RightValue() { list.add(v); } )*
 			<CLOSE_PAREN>
-			{ v2 = new ListValue(list); }
+			{ return new ListCondition(v1, op, list); }
 		)
 	)
 	{ return new BooleanCondition(v1, op, v2); }