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/01/03 08:05:36 UTC
svn commit: r730929 -
/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java
Author: cbegin
Date: Fri Jan 2 23:05:36 2009
New Revision: 730929
URL: http://svn.apache.org/viewvc?rev=730929&view=rev
Log:
Used strict map for configuration collections.
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java?rev=730929&r1=730928&r2=730929&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java Fri Jan 2 23:05:36 2009
@@ -40,10 +40,10 @@
private final InterceptorChain interceptorChain = new InterceptorChain();
private final TypeHandlerRegistry typeHandlerRegistry = new TypeHandlerRegistry();
private final TypeAliasRegistry typeAliasRegistry = new TypeAliasRegistry();
- private final Map<String, MappedStatement> mappedStatements = new HashMap<String, MappedStatement>();
- private final Map<String, Cache> caches = new HashMap<String, Cache>();
- private final Map<String, ResultMap> resultMaps = new HashMap<String, ResultMap>();
- private final Map<String, ParameterMap> parameterMaps = new HashMap<String, ParameterMap>();
+ private final Map<String, MappedStatement> mappedStatements = new StrictMap<String, MappedStatement>("Mapped Statements collection");
+ private final Map<String, Cache> caches = new StrictMap<String, Cache>("Caches collection");
+ private final Map<String, ResultMap> resultMaps = new HashMap<String, ResultMap>();//("Result Maps collection");
+ private final Map<String, ParameterMap> parameterMaps = new StrictMap<String, ParameterMap>("Parameter Maps collection");
public Configuration() {
typeAliasRegistry.registerAlias("JDBC", JdbcTransactionFactory.class.getName());
@@ -241,4 +241,41 @@
interceptorChain.addInterceptor(interceptor);
}
+ private static class StrictMap<J,K> extends HashMap<J,K> {
+
+ private String name;
+
+ public StrictMap(String name, int initialCapacity, float loadFactor) {
+ super(initialCapacity, loadFactor);
+ this.name = name;
+ }
+
+ public StrictMap(String name, int initialCapacity) {
+ super(initialCapacity);
+ this.name = name;
+ }
+
+ public StrictMap(String name) {
+ super();
+ this.name = name;
+ }
+
+ public StrictMap(String name, Map<? extends J, ? extends K> m) {
+ super(m);
+ this.name = name;
+ }
+
+ public K put(J key, K value) {
+ if (containsKey(key)) throw new IllegalArgumentException(name + " already contains value for " + key);
+ return super.put(key, value);
+ }
+
+ public K get(Object key) {
+ K value = super.get(key);
+ if (value == null) throw new IllegalArgumentException(name + " does not contain value for " + key);
+ return value;
+ }
+
+ }
+
}