Author: cbegin
Date: Sat Apr 11 04:22:57 2009
New Revision: 764162

URL: http://svn.apache.org/viewvc?rev=764162&view=rev
Log:
refactored expressionevaluator

Modified:
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ExpressionEvaluator.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ForEachSqlNode.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/IfSqlNode.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/xml/dynamic/ExpressionEvaluatorTest.java

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ExpressionEvaluator.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ExpressionEvaluator.java?rev=764162&r1=764161&r2=764162&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ExpressionEvaluator.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ExpressionEvaluator.java
 Sat Apr 11 04:22:57 2009
@@ -8,7 +8,7 @@
 
 public class ExpressionEvaluator {
 
-  public boolean isTrue(String expression, Object parameterObject) {
+  public boolean evaluateBoolean(String expression, Object parameterObject) {
     try {
       Object value = Ognl.getValue(expression, parameterObject);
       if (value instanceof Boolean) return (Boolean) value;
@@ -19,7 +19,7 @@
     }
   }
 
-  public Iterable getIterable(String expression, Object parameterObject) {
+  public Iterable evaluateIterable(String expression, Object parameterObject) {
     try {
       Object value = Ognl.getValue(expression, parameterObject);
       if (value instanceof Iterable) return (Iterable) value;

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ForEachSqlNode.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ForEachSqlNode.java?rev=764162&r1=764161&r2=764162&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ForEachSqlNode.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ForEachSqlNode.java
 Sat Apr 11 04:22:57 2009
@@ -1,16 +1,18 @@
 package org.apache.ibatis.parser.xml.dynamic;
 
 public class ForEachSqlNode implements SqlNode {
-  private Iterable collection;
+  private ExpressionEvaluator evaluator;
+  private String collectionExpression;
   private MixedSqlNode contents;
 
-  public ForEachSqlNode(Iterable collection, MixedSqlNode contents) {
-    this.collection = collection;
+  public ForEachSqlNode(String collectionExpression, MixedSqlNode contents) {
+    this.collectionExpression = collectionExpression;
     this.contents = contents;
   }
 
   public boolean apply(DynamicContext builder) {
-    for (Object o : collection) {
+    final Iterable iterable = evaluator.evaluateIterable(collectionExpression, 
builder.getParameterObject());
+    for (Object o : iterable) {
       contents.apply(builder);
     }
     return true;

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/IfSqlNode.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/IfSqlNode.java?rev=764162&r1=764161&r2=764162&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/IfSqlNode.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/IfSqlNode.java
 Sat Apr 11 04:22:57 2009
@@ -12,7 +12,7 @@
   }
 
   public boolean apply(DynamicContext builder) {
-    if (evaluator.isTrue(test, builder.getParameterObject())) {
+    if (evaluator.evaluateBoolean(test, builder.getParameterObject())) {
       contents.apply(builder);
       return true;
     }

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/xml/dynamic/ExpressionEvaluatorTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/xml/dynamic/ExpressionEvaluatorTest.java?rev=764162&r1=764161&r2=764162&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/xml/dynamic/ExpressionEvaluatorTest.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/xml/dynamic/ExpressionEvaluatorTest.java
 Sat Apr 11 04:22:57 2009
@@ -12,37 +12,37 @@
 
   @Test
   public void shouldCompareStringsReturnTrue() {
-    boolean value = evaluator.isTrue("username == 'cbegin'", new 
Author(1,"cbegin","******","[email protected]","N/A", Section.NEWS));
+    boolean value = evaluator.evaluateBoolean("username == 'cbegin'", new 
Author(1,"cbegin","******","[email protected]","N/A", Section.NEWS));
     assertEquals(true, value);
   }
 
   @Test
   public void shouldCompareStringsReturnFalse() {
-    boolean value = evaluator.isTrue("username == 'norm'", new 
Author(1,"cbegin","******","[email protected]","N/A", Section.NEWS));
+    boolean value = evaluator.evaluateBoolean("username == 'norm'", new 
Author(1,"cbegin","******","[email protected]","N/A", Section.NEWS));
     assertEquals(false, value);
   }
 
   @Test
   public void shouldReturnTrueIfNotNull() {
-    boolean value = evaluator.isTrue("username", new 
Author(1,"cbegin","******","[email protected]","N/A", Section.NEWS));
+    boolean value = evaluator.evaluateBoolean("username", new 
Author(1,"cbegin","******","[email protected]","N/A", Section.NEWS));
     assertEquals(true, value);
   }
 
   @Test
   public void shouldReturnFalseIfNull() {
-    boolean value = evaluator.isTrue("password", new 
Author(1,"cbegin",null,"[email protected]","N/A", Section.NEWS));
+    boolean value = evaluator.evaluateBoolean("password", new 
Author(1,"cbegin",null,"[email protected]","N/A", Section.NEWS));
     assertEquals(false, value);
   }
 
   @Test
   public void shouldReturnTrueIfNotZero() {
-    boolean value = evaluator.isTrue("id", new 
Author(1,"cbegin",null,"[email protected]","N/A", Section.NEWS));
+    boolean value = evaluator.evaluateBoolean("id", new 
Author(1,"cbegin",null,"[email protected]","N/A", Section.NEWS));
     assertEquals(true, value);
   }
 
   @Test
   public void shouldReturnFalseIfZero() {
-    boolean value = evaluator.isTrue("id", new 
Author(0,"cbegin",null,"[email protected]","N/A", Section.NEWS));
+    boolean value = evaluator.evaluateBoolean("id", new 
Author(0,"cbegin",null,"[email protected]","N/A", Section.NEWS));
     assertEquals(false, value);
   }
 
@@ -51,7 +51,7 @@
     final HashMap<String,String[]> parameterObject = new HashMap() {{
         put("array", new String[]{"1", "2", "3"});
       }};
-    final Iterable iterable = evaluator.getIterable("array", parameterObject);
+    final Iterable iterable = evaluator.evaluateIterable("array", 
parameterObject);
     int i = 0;
     for(Object o: iterable) {
       assertEquals(String.valueOf(++i),o);


Reply via email to