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() {