Skip to content

Commit 7c8a3c1

Browse files
committed
Cleaned up a little bit more
1 parent c706462 commit 7c8a3c1

File tree

10 files changed

+122
-145
lines changed

10 files changed

+122
-145
lines changed

src/main/java/org/apache/ibatis/builder/BaseBuilder.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,32 +107,31 @@ protected <T> Class<? extends T> resolveClass(String alias) {
107107

108108
@Deprecated
109109
protected TypeHandler<?> resolveTypeHandler(Class<?> javaType, String typeHandlerAlias) {
110-
return resolveTypeHandler(null, null, javaType, null, typeHandlerAlias);
110+
return resolveTypeHandler(null, javaType, null, typeHandlerAlias);
111111
}
112112

113113
@Deprecated
114114
protected TypeHandler<?> resolveTypeHandler(Class<?> javaType, Class<? extends TypeHandler<?>> typeHandlerType) {
115-
return resolveTypeHandler(null, null, javaType, null, typeHandlerType);
115+
return resolveTypeHandler(null, javaType, null, typeHandlerType);
116116
}
117117

118-
protected TypeHandler<?> resolveTypeHandler(Class<?> parameterType, String propertyName, Type propertyType,
119-
JdbcType jdbcType, String typeHandlerAlias) {
118+
protected TypeHandler<?> resolveTypeHandler(Class<?> parameterType, Type propertyType, JdbcType jdbcType,
119+
String typeHandlerAlias) {
120120
Class<? extends TypeHandler<?>> typeHandlerType = null;
121121
typeHandlerType = resolveClass(typeHandlerAlias);
122122
if (typeHandlerType != null && !TypeHandler.class.isAssignableFrom(typeHandlerType)) {
123123
throw new BuilderException("Type " + typeHandlerType.getName()
124124
+ " is not a valid TypeHandler because it does not implement TypeHandler interface");
125125
}
126-
return resolveTypeHandler(parameterType, propertyName, propertyType, jdbcType, typeHandlerType);
126+
return resolveTypeHandler(parameterType, propertyType, jdbcType, typeHandlerType);
127127
}
128128

129-
protected TypeHandler<?> resolveTypeHandler(Class<?> parameterType, String propertyName, Type propertyType,
130-
JdbcType jdbcType, Class<? extends TypeHandler<?>> typeHandlerType) {
129+
protected TypeHandler<?> resolveTypeHandler(Class<?> parameterType, Type propertyType, JdbcType jdbcType,
130+
Class<? extends TypeHandler<?>> typeHandlerType) {
131131
if (typeHandlerType == null && jdbcType == null) {
132132
return null;
133133
}
134-
return configuration.getTypeHandlerRegistry().resolve(parameterType, propertyType, propertyName, jdbcType,
135-
typeHandlerType);
134+
return configuration.getTypeHandlerRegistry().resolve(parameterType, propertyType, jdbcType, typeHandlerType);
136135
}
137136

138137
protected <T> Class<? extends T> resolveAlias(String alias) {

src/main/java/org/apache/ibatis/builder/MapperBuilderAssistant.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,7 @@ public ParameterMapping buildParameterMapping(Class<?> parameterType, String pro
149149

150150
// Class parameterType = parameterMapBuilder.type();
151151
Class<?> javaTypeClass = resolveParameterJavaType(parameterType, property, javaType, jdbcType);
152-
TypeHandler<?> typeHandlerInstance = resolveTypeHandler(parameterType, property, javaTypeClass, jdbcType,
153-
typeHandler);
152+
TypeHandler<?> typeHandlerInstance = resolveTypeHandler(parameterType, javaTypeClass, jdbcType, typeHandler);
154153

155154
return new ParameterMapping.Builder(configuration, property, javaTypeClass).jdbcType(jdbcType)
156155
.resultMapId(resultMap).mode(parameterMode).numericScale(numericScale).typeHandler(typeHandlerInstance).build();
@@ -343,8 +342,7 @@ public ResultMapping buildResultMapping(Class<?> resultType, String property, St
343342
Class<? extends TypeHandler<?>> typeHandler, List<ResultFlag> flags, String resultSet, String foreignColumn,
344343
boolean lazy) {
345344
Entry<Type, Class<?>> setterType = resolveSetterType(resultType, property, javaType);
346-
TypeHandler<?> typeHandlerInstance = resolveTypeHandler(resultType, property, setterType.getKey(), jdbcType,
347-
typeHandler);
345+
TypeHandler<?> typeHandlerInstance = resolveTypeHandler(resultType, setterType.getKey(), jdbcType, typeHandler);
348346
List<ResultMapping> composites;
349347
if ((nestedSelect == null || nestedSelect.isEmpty()) && (foreignColumn == null || foreignColumn.isEmpty())) {
350348
composites = Collections.emptyList();

src/main/java/org/apache/ibatis/builder/ParameterMappingTokenHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ private ParameterMapping buildParameterMapping(String content) {
9696
genericType = javaType;
9797
}
9898
if ((typeHandler == null || typeHandlerAlias != null) && genericType != null && genericType != Object.class) {
99-
typeHandler = resolveTypeHandler(parameterType, property, genericType, jdbcType, typeHandlerAlias);
99+
typeHandler = resolveTypeHandler(parameterType, genericType, jdbcType, typeHandlerAlias);
100100
}
101101
builder.typeHandler(typeHandler);
102102

@@ -144,7 +144,7 @@ private Class<?> figureOutJavaType(Map<String, String> propertiesMap, String pro
144144
if (metaParameters.hasGetter(propertyTokenizer.getName())) { // issue #448 get type from additional params
145145
return metaParameters.getGetterType(property);
146146
}
147-
typeHandler = resolveTypeHandler(parameterType, null, null, jdbcType, (Class<? extends TypeHandler<?>>) null);
147+
typeHandler = resolveTypeHandler(parameterType, null, jdbcType, (Class<? extends TypeHandler<?>>) null);
148148
if (typeHandler != null) {
149149
return parameterType;
150150
}

src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ public void handleOutputParameters(CallableStatement cs) throws SQLException {
178178
}
179179
jdbcType = JdbcType.forCode(rsmd.getColumnType(i + 1));
180180
}
181-
typeHandler = typeHandlerRegistry.resolve(parameterObject.getClass(), javaType, property, jdbcType, null);
181+
typeHandler = typeHandlerRegistry.resolve(parameterObject.getClass(), javaType, jdbcType, null);
182182
}
183183
metaParam.setValue(property, typeHandler.getResult(cs, i + 1));
184184
}
@@ -635,8 +635,7 @@ private TypeHandler<?> resolvePropertyTypeHandler(ResultSetWrapper rsw, MetaObje
635635
th = typeHandlerRegistry.getTypeHandler(jdbcType);
636636
} else {
637637
Type classToHandle = metaResultObject.getGenericSetterType(property).getKey();
638-
th = configuration.getTypeHandlerRegistry().resolve(metaResultObjectClass, classToHandle, property, jdbcType,
639-
null);
638+
th = configuration.getTypeHandlerRegistry().resolve(metaResultObjectClass, classToHandle, jdbcType, null);
640639
if (th == null) {
641640
throw new TypeException(
642641
"No usable type handler found for mapping the result of column '" + column + "' to property '" + property
@@ -678,7 +677,7 @@ private List<UnMappedColumnAutoMapping> createAutomaticMappings(ResultSetWrapper
678677
final Type propertyType = metaObject.getGenericSetterType(property).getKey();
679678
Class<?> metaObjectClass = metaObject.getOriginalObject().getClass();
680679
TypeHandler<?> typeHandler = configuration.getTypeHandlerRegistry().resolve(metaObjectClass, propertyType,
681-
property, rsw.getJdbcType(columnName), null);
680+
rsw.getJdbcType(columnName), null);
682681
if (typeHandler != null) {
683682
autoMapping.add(new UnMappedColumnAutoMapping(columnName, property, typeHandler,
684683
propertyType instanceof Class && ((Class<?>) propertyType).isPrimitive()));

src/main/java/org/apache/ibatis/scripting/defaults/DefaultParameterHandler.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public class DefaultParameterHandler implements ParameterHandler {
5757
private ParameterMetaData paramMetaData;
5858
private MetaObject paramMetaObject;
5959
private HashMap<Class<?>, MetaClass> metaClassCache = new HashMap<>();
60-
private static final ParameterMetaData nullParameterMetaData = new ParameterMetaData() {
60+
private static final ParameterMetaData NULL_PARAM_METADATA = new ParameterMetaData() {
6161
// @formatter:off
6262
public <T> T unwrap(Class<T> iface) throws SQLException { return null; }
6363
public boolean isWrapperFor(Class<?> iface) throws SQLException { return false; }
@@ -107,7 +107,7 @@ public void setParameters(PreparedStatement ps) {
107107
} else if (boundSql.hasAdditionalParameter(propertyName)) { // issue #448 ask first for additional params
108108
value = boundSql.getAdditionalParameter(propertyName);
109109
if (typeHandler == null) {
110-
typeHandler = typeHandlerRegistry.resolve(value.getClass(), null, null, actualJdbcType, null);
110+
typeHandler = typeHandlerRegistry.resolve(value.getClass(), null, actualJdbcType, null);
111111
}
112112
} else if (parameterObject == null) {
113113
value = null;
@@ -143,7 +143,7 @@ public void setParameters(PreparedStatement ps) {
143143
try {
144144
propertyGenericType = paramMetaObject.getGenericGetterType(propertyName).getKey();
145145
typeHandler = configuration.getTypeHandlerRegistry().resolve(parameterClass, propertyGenericType,
146-
propertyName, actualJdbcType, null);
146+
actualJdbcType, null);
147147
} catch (Exception e) {
148148
// Not always resolvable
149149
}
@@ -162,8 +162,8 @@ public void setParameters(PreparedStatement ps) {
162162
if (propertyGenericType == null) {
163163
propertyGenericType = value.getClass();
164164
}
165-
typeHandler = typeHandlerRegistry.resolve(parameterObject.getClass(), propertyGenericType, propertyName,
166-
actualJdbcType, null);
165+
typeHandler = typeHandlerRegistry.resolve(parameterObject.getClass(), propertyGenericType, actualJdbcType,
166+
null);
167167
}
168168
if (typeHandler == null) {
169169
typeHandler = typeHandlerRegistry.getTypeHandler(actualJdbcType);
@@ -189,14 +189,13 @@ private MetaObject getParamMetaObject() {
189189
private JdbcType getParamJdbcType(PreparedStatement ps, int paramIndex) {
190190
try {
191191
if (paramMetaData == null) {
192-
try {
193-
paramMetaData = ps.getParameterMetaData();
194-
} catch (SQLException e) {
195-
paramMetaData = nullParameterMetaData;
196-
}
192+
paramMetaData = ps.getParameterMetaData();
197193
}
198-
return JdbcType.forCode(paramMetaData.getParameterType(paramIndex));
194+
return paramMetaData == NULL_PARAM_METADATA ? null : JdbcType.forCode(paramMetaData.getParameterType(paramIndex));
199195
} catch (SQLException e) {
196+
if (paramMetaData == null) {
197+
paramMetaData = NULL_PARAM_METADATA;
198+
}
200199
return null;
201200
}
202201
}

0 commit comments

Comments
 (0)