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/23 03:33:59 UTC

svn commit: r757302 - in /ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis: binding/ parser/

Author: cbegin
Date: Mon Mar 23 02:33:58 2009
New Revision: 757302

URL: http://svn.apache.org/viewvc?rev=757302&view=rev
Log:
moved annotation parser with xml parser to keep them all together

Added:
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperAnnotationParser.java
      - copied, changed from r757299, 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/ParameterMappingTokenHandler.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ProviderSqlSource.java
      - copied, changed from r757019, ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/DynamicInlineSqlSource.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/StaticSqlSource.java
      - copied, changed from r753101, ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/InlineSqlSource.java
Removed:
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/DynamicInlineSqlSource.java
    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/InlineSqlSource.java
Modified:
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperRegistry.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/SqlSourceParser.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/XMLMapperConfigParser.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/XMLMapperParser.java

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperRegistry.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperRegistry.java?rev=757302&r1=757301&r2=757302&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperRegistry.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperRegistry.java Mon Mar 23 02:33:58 2009
@@ -2,6 +2,7 @@
 
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.mapping.*;
+import org.apache.ibatis.parser.MapperAnnotationParser;
 
 import java.util.*;
 

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=757302&r1=757301&r2=757302&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 23 02:33:58 2009
@@ -8,9 +8,15 @@
 import org.apache.ibatis.type.TypeHandlerRegistry;
 
 public class BaseParser {
-  protected Configuration configuration;
-  protected TypeAliasRegistry typeAliasRegistry;
-  protected TypeHandlerRegistry typeHandlerRegistry;
+  protected final Configuration configuration;
+  protected final TypeAliasRegistry typeAliasRegistry;
+  protected final TypeHandlerRegistry typeHandlerRegistry;
+
+  public BaseParser(Configuration configuration) {
+    this.configuration = configuration;
+    this.typeAliasRegistry = this.configuration.getTypeAliasRegistry();
+    this.typeHandlerRegistry = this.configuration.getTypeHandlerRegistry();
+  }
 
   public Configuration getConfiguration() {
     return configuration;

Copied: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperAnnotationParser.java (from r757299, 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/parser/MapperAnnotationParser.java?p2=ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperAnnotationParser.java&p1=ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperAnnotationParser.java&r1=757299&r2=757302&rev=757302&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/parser/MapperAnnotationParser.java Mon Mar 23 02:33:58 2009
@@ -1,14 +1,14 @@
-package org.apache.ibatis.binding;
+package org.apache.ibatis.parser;
 
 import static org.apache.ibatis.annotations.Annotations.*;
+import org.apache.ibatis.binding.BindingException;
+import org.apache.ibatis.io.Resources;
 import org.apache.ibatis.mapping.*;
-import org.apache.ibatis.parser.MapperConfigurator;
-import org.apache.ibatis.parser.SqlSourceParser;
-import org.apache.ibatis.parser.XMLMapperParser;
 import org.apache.ibatis.reflection.MetaClass;
 import org.apache.ibatis.type.JdbcType;
-import org.apache.ibatis.io.Resources;
 
+import java.io.IOException;
+import java.io.Reader;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.lang.reflect.ParameterizedType;
@@ -16,8 +16,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-import java.io.Reader;
-import java.io.IOException;
 
 public class MapperAnnotationParser {
 
@@ -252,7 +250,7 @@
         return parser.parse(sql.toString());
       } else if (sqlProviderAnnotationType != null) {
         Annotation sqlProviderAnnotation = method.getAnnotation(sqlProviderAnnotationType);
-        return new DynamicInlineSqlSource(configurator.getConfiguration(), sqlProviderAnnotation);
+        return new ProviderSqlSource(configurator.getConfiguration(), sqlProviderAnnotation);
       }
       return null;
     } catch (Exception e) {

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=757302&r1=757301&r2=757302&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 23 02:33:58 2009
@@ -31,11 +31,9 @@
   private Cache cache;
 
   public MapperConfigurator(Configuration configuration, String resource) {
+    super(configuration);
     ErrorContext.instance().resource(resource);
     this.resource = resource;
-    this.configuration = configuration;
-    this.typeAliasRegistry = configuration.getTypeAliasRegistry();
-    this.typeHandlerRegistry = configuration.getTypeHandlerRegistry();
   }
 
   public String namespace() {

Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ParameterMappingTokenHandler.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ParameterMappingTokenHandler.java?rev=757302&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ParameterMappingTokenHandler.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ParameterMappingTokenHandler.java Mon Mar 23 02:33:58 2009
@@ -0,0 +1,58 @@
+package org.apache.ibatis.parser;
+
+import org.apache.ibatis.xml.GenericTokenParser;
+import org.apache.ibatis.mapping.ParameterMapping;
+import org.apache.ibatis.mapping.Configuration;
+import org.apache.ibatis.type.TypeHandler;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+
+public class ParameterMappingTokenHandler extends BaseParser implements GenericTokenParser.TokenHandler {
+
+    private List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>();
+
+  public ParameterMappingTokenHandler(Configuration configuration) {
+    super(configuration);
+  }
+
+  public List<ParameterMapping> getParameterMappings() {
+      return parameterMappings;
+    }
+
+    public String handleToken(String content) {
+      parameterMappings.add(buildParameterMapping(content));
+      return "?";
+    }
+
+    private ParameterMapping buildParameterMapping(String content) {
+      StringTokenizer parameterMappingParts = new StringTokenizer(content, ", ");
+      String property = parameterMappingParts.nextToken();
+      ParameterMapping.Builder builder = new ParameterMapping.Builder(configuration, property, Object.class);
+      while (parameterMappingParts.hasMoreTokens()) {
+        String attribute = parameterMappingParts.nextToken();
+        StringTokenizer attributeParts = new StringTokenizer(attribute, "=");
+        if (attributeParts.countTokens() == 2) {
+          String name = attributeParts.nextToken();
+          String value = attributeParts.nextToken();
+          if ("javaType".equals(name)) {
+            builder.javaType(resolveClass(value));
+          } else if ("jdbcType".equals(name)) {
+            builder.jdbcType(resolveJdbcType(value));
+          } else if ("mode".equals(name)) {
+            builder.mode(resolveParameterMode(value));
+          } else if ("numericScale".equals(name)) {
+            builder.numericScale(Integer.valueOf(value));
+          } else if ("resultMap".equals(name)) {
+            builder.resultMapId(value);
+          } else if ("typeHandler".equals(name)) {
+            builder.typeHandler((TypeHandler) resolveInstance(value));
+          }
+        } else {
+          throw new ParserException("Improper inline parameter map format.  Should be: #{propName,attr1=val1,attr2=val2}");
+        }
+      }
+      return builder.build();
+    }
+  }

Copied: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ProviderSqlSource.java (from r757019, ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/DynamicInlineSqlSource.java)
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ProviderSqlSource.java?p2=ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ProviderSqlSource.java&p1=ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/DynamicInlineSqlSource.java&r1=757019&r2=757302&rev=757302&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/DynamicInlineSqlSource.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ProviderSqlSource.java Mon Mar 23 02:33:58 2009
@@ -1,21 +1,20 @@
-package org.apache.ibatis.binding;
+package org.apache.ibatis.parser;
 
 import org.apache.ibatis.mapping.Configuration;
 import org.apache.ibatis.mapping.ParameterMapping;
 import org.apache.ibatis.mapping.SqlSource;
-import org.apache.ibatis.parser.SqlSourceParser;
 
 import java.lang.reflect.Method;
 import java.util.List;
 
-public class DynamicInlineSqlSource implements SqlSource {
+public class ProviderSqlSource implements SqlSource {
 
   private SqlSourceParser sqlSourceParser;
   private Class providerType;
   private Method providerMethod;
   private boolean providerTakesParameterObject;
 
-  public DynamicInlineSqlSource(Configuration config, Object provider) {
+  public ProviderSqlSource(Configuration config, Object provider) {
     try {
       this.sqlSourceParser = new SqlSourceParser(config);
       this.providerType = (Class)provider.getClass().getMethod("type").invoke(provider);

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/SqlSourceParser.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/SqlSourceParser.java?rev=757302&r1=757301&r2=757302&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/SqlSourceParser.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/SqlSourceParser.java Mon Mar 23 02:33:58 2009
@@ -13,60 +13,15 @@
 public class SqlSourceParser extends BaseParser {
 
   public SqlSourceParser(Configuration configuration) {
-    this.configuration = configuration;
-    this.typeAliasRegistry = configuration.getTypeAliasRegistry();
-    this.typeHandlerRegistry = configuration.getTypeHandlerRegistry();
+    super(configuration);
   }
 
   public SqlSource parse(String originalSql) {
-    ParameterMappingTokenHandler handler = new ParameterMappingTokenHandler();
+    ParameterMappingTokenHandler handler = new ParameterMappingTokenHandler(configuration);
     GenericTokenParser parser = new GenericTokenParser("#{", "}", handler);
     String sql = parser.parse(originalSql);
-    return new InlineSqlSource(sql, handler.getParameterMappings());
+    return new StaticSqlSource(sql, handler.getParameterMappings());
   }
 
-  private class ParameterMappingTokenHandler implements GenericTokenParser.TokenHandler {
-
-    private List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>();
-
-    public List<ParameterMapping> getParameterMappings() {
-      return parameterMappings;
-    }
-
-    public String handleToken(String content) {
-      parameterMappings.add(buildParameterMapping(content));
-      return "?";
-    }
-
-    private ParameterMapping buildParameterMapping(String content) {
-      StringTokenizer parameterMappingParts = new StringTokenizer(content, ", ");
-      String property = parameterMappingParts.nextToken();
-      ParameterMapping.Builder builder = new ParameterMapping.Builder(configuration, property, Object.class);
-      while (parameterMappingParts.hasMoreTokens()) {
-        String attribute = parameterMappingParts.nextToken();
-        StringTokenizer attributeParts = new StringTokenizer(attribute, "=");
-        if (attributeParts.countTokens() == 2) {
-          String name = attributeParts.nextToken();
-          String value = attributeParts.nextToken();
-          if ("javaType".equals(name)) {
-            builder.javaType(resolveClass(value));
-          } else if ("jdbcType".equals(name)) {
-            builder.jdbcType(resolveJdbcType(value));
-          } else if ("mode".equals(name)) {
-            builder.mode(resolveParameterMode(value));
-          } else if ("numericScale".equals(name)) {
-            builder.numericScale(Integer.valueOf(value));
-          } else if ("resultMap".equals(name)) {
-            builder.resultMapId(value);
-          } else if ("typeHandler".equals(name)) {
-            builder.typeHandler((TypeHandler) resolveInstance(value));
-          }
-        } else {
-          throw new ParserException("Improper inline parameter map format.  Should be: #{propName,attr1=val1,attr2=val2}");
-        }
-      }
-      return builder.build();
-    }
-  }
 
 }

Copied: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/StaticSqlSource.java (from r753101, ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/InlineSqlSource.java)
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/StaticSqlSource.java?p2=ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/StaticSqlSource.java&p1=ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/InlineSqlSource.java&r1=753101&r2=757302&rev=757302&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/InlineSqlSource.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/StaticSqlSource.java Mon Mar 23 02:33:58 2009
@@ -5,12 +5,12 @@
 
 import java.util.List;
 
-public class InlineSqlSource implements SqlSource {
+public class StaticSqlSource implements SqlSource {
 
   private String sql;
   private List<ParameterMapping> parameterMappings;
 
-  public InlineSqlSource(String sql, List<ParameterMapping> parameterMappings) {
+  public StaticSqlSource(String sql, List<ParameterMapping> parameterMappings) {
     this.sql = sql;
     this.parameterMappings = parameterMappings;
   }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/XMLMapperConfigParser.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/XMLMapperConfigParser.java?rev=757302&r1=757301&r2=757302&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/XMLMapperConfigParser.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/XMLMapperConfigParser.java Mon Mar 23 02:33:58 2009
@@ -38,16 +38,16 @@
   }
 
   public XMLMapperConfigParser(Reader reader, String environment, Properties props) {
+    super(new Configuration());
+
     ErrorContext.instance().resource("SQL Mapper Configuration");
+
+    this.configuration.setVariables(props);
+
     this.parsed = false;
     this.reader = reader;
     this.environment = environment;
 
-    this.configuration = new Configuration();
-    this.configuration.setVariables(props);
-    this.typeAliasRegistry = this.configuration.getTypeAliasRegistry();
-    this.typeHandlerRegistry = this.configuration.getTypeHandlerRegistry();
-
     this.parser = new NodeletParser();
     this.parser.addNodeletHandler(this);
     this.parser.setValidation(true);

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/XMLMapperParser.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/XMLMapperParser.java?rev=757302&r1=757301&r2=757302&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/XMLMapperParser.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/XMLMapperParser.java Mon Mar 23 02:33:58 2009
@@ -22,6 +22,7 @@
   }
 
   public XMLMapperParser(Reader reader, Configuration configuration, String resource) {
+    super(configuration);
     this.mapperConfigurator = new MapperConfigurator(configuration,resource);
     this.reader = reader;
     this.parser = new NodeletParser();
@@ -29,9 +30,6 @@
     this.parser.setValidation(true);
     this.parser.setVariables(configuration.getVariables());
     this.parser.setEntityResolver(new XMLMapperEntityResolver());
-    this.typeAliasRegistry = configuration.getTypeAliasRegistry();
-    this.typeHandlerRegistry = configuration.getTypeHandlerRegistry();
-    this.configuration = configuration;
   }
 
   public void parse() {