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);