You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2009/03/16 05:23:06 UTC

svn commit: r754813 - in /ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis: binding/MapperAnnotationParser.java parser/BaseParser.java parser/MapperConfigurator.java parser/MapperParser.java

Author: cbegin
Date: Mon Mar 16 04:22:56 2009
New Revision: 754813

URL: http://svn.apache.org/viewvc?rev=754813&view=rev
Log:
refactored statement configurator to accept sqlsource instead of a string

Modified:
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperAnnotationParser.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/BaseParser.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperConfigurator.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperAnnotationParser.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperAnnotationParser.java?rev=754813&r1=754812&r2=754813&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperAnnotationParser.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperAnnotationParser.java Mon Mar 16 04:22:56 2009
@@ -3,6 +3,7 @@
 import static org.apache.ibatis.annotations.Annotations.*;
 import org.apache.ibatis.mapping.*;
 import org.apache.ibatis.parser.MapperConfigurator;
+import org.apache.ibatis.parser.SqlSourceParser;
 import org.apache.ibatis.reflection.MetaClass;
 import org.apache.ibatis.type.JdbcType;
 
@@ -169,9 +170,10 @@
         statementType = options.statementType();
         resultSetType = options.resultSetType();
       }
+      SqlSource sqlSource = new SqlSourceParser(configurator.getConfiguration()).parse(sql);
       configurator.statement(
           mappedStatementId,
-          sql,
+          sqlSource,
           fetchSize,
           timeout,
           null,         // ParameterMapID
@@ -219,17 +221,19 @@
     if (annotation != null) {
       try {
         String[] strings = (String[]) annotation.getClass().getMethod("value").invoke(annotation);
-        StringBuilder sql = new StringBuilder();
-        for (String fragment : strings) {
-          sql.append(fragment);
-          sql.append(" ");
+        if (strings != null && strings.length > 0) {
+          StringBuilder sql = new StringBuilder();
+          for (String fragment : strings) {
+            sql.append(fragment);
+            sql.append(" ");
+          }
+          return sql.toString();
         }
-        return sql.toString();
       } catch (Exception e) {
         throw new RuntimeException("Could not find value method on SQL annotation.  Cause: " + e, e);
       }
     }
-    throw new BindingException("Reuested value from annotation that does not exist: " + annotationType);
+    throw new BindingException("Requested value from annotation that does not exist: " + annotationType);
   }
 
   private Class getSqlAnnotationType(Method method) {

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/BaseParser.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/BaseParser.java?rev=754813&r1=754812&r2=754813&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/BaseParser.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/BaseParser.java Mon Mar 16 04:22:56 2009
@@ -12,6 +12,10 @@
   protected TypeAliasRegistry typeAliasRegistry;
   protected TypeHandlerRegistry typeHandlerRegistry;
 
+  public Configuration getConfiguration() {
+    return configuration;
+  }
+
   protected String stringValueOf(String value, String defaultValue) {
     return value == null ? defaultValue : value;
   }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperConfigurator.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperConfigurator.java?rev=754813&r1=754812&r2=754813&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperConfigurator.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperConfigurator.java Mon Mar 16 04:22:56 2009
@@ -199,7 +199,7 @@
 
   public void statement(
       String id,
-      String sql,
+      SqlSource sqlSource,
       Integer fetchSize,
       Integer timeout,
       String parameterMap,
@@ -213,8 +213,6 @@
       StatementType statementType) {
     id = applyNamespace(id);
 
-    SqlSource sqlSource = new SqlSourceParser(configuration).parse(sql);
-
     MappedStatement.Builder statementBuilder = new MappedStatement.Builder(configuration, id, sqlSource);
     statementBuilder.resource(resource);
     statementBuilder.fetchSize(fetchSize);

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java?rev=754813&r1=754812&r2=754813&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java Mon Mar 16 04:22:56 2009
@@ -247,7 +247,8 @@
     Class resultTypeClass = resolveClass(resultType);
     String resultSetType = context.getStringAttribute("resultSetType");
     ResultSetType resultSetTypeEnum = resolveResultSetType(resultSetType);
-    mapperConfigurator.statement(id,sql,fetchSize,timeout,parameterMap, parameterTypeClass,
+    SqlSource sqlSource = new SqlSourceParser(configuration).parse(sql);
+    mapperConfigurator.statement(id,sqlSource,fetchSize,timeout,parameterMap, parameterTypeClass,
         resultMap, resultTypeClass,resultSetTypeEnum,isSelect,flushCache,useCache,statementType);
   }