Use Map.forEach instead of manual Map.Entry iteration wherever possible

Issue: SPR-16646
This commit is contained in:
Juergen Hoeller
2018-03-27 00:38:32 +02:00
parent 10cb2ccaef
commit e3d0ef6015
50 changed files with 231 additions and 366 deletions

View File

@@ -563,14 +563,14 @@ public class CallMetaDataContext {
}
Map<String, Object> matchedParameters = new HashMap<>(inParameters.size());
for (String parameterName : inParameters.keySet()) {
inParameters.forEach((parameterName, parameterValue) -> {
String parameterNameToMatch = provider.parameterNameToUse(parameterName);
String callParameterName = callParameterNames.get(lowerCase(parameterNameToMatch));
if (callParameterName == null) {
if (logger.isDebugEnabled()) {
Object value = inParameters.get(parameterName);
Object value = parameterValue;
if (value instanceof SqlParameterValue) {
value = ((SqlParameterValue)value).getValue();
value = ((SqlParameterValue) value).getValue();
}
if (value != null) {
logger.debug("Unable to locate the corresponding IN or IN-OUT parameter for \"" +
@@ -579,9 +579,9 @@ public class CallMetaDataContext {
}
}
else {
matchedParameters.put(callParameterName, inParameters.get(parameterName));
matchedParameters.put(callParameterName, parameterValue);
}
}
});
if (matchedParameters.size() < callParameterNames.size()) {
for (String parameterName : callParameterNames.keySet()) {

View File

@@ -244,13 +244,21 @@ public class TableMetaDataContext {
* @param inParameters the parameter names and values
*/
public List<Object> matchInParameterValuesWithInsertColumns(Map<String, ?> inParameters) {
List<Object> values = new ArrayList<>();
Map<String, Object> source = new LinkedHashMap<>(inParameters.size());
for (String key : inParameters.keySet()) {
source.put(key.toLowerCase(), inParameters.get(key));
}
List<Object> values = new ArrayList<>(inParameters.size());
for (String column : this.tableColumns) {
values.add(source.get(column.toLowerCase()));
Object value = inParameters.get(column);
if (value == null) {
value = inParameters.get(column.toLowerCase());
if (value == null) {
for (Map.Entry<String, ?> entry : inParameters.entrySet()) {
if (column.equalsIgnoreCase(entry.getKey())) {
value = entry.getValue();
// TODO: break;
}
}
}
}
values.add(value);
}
return values;
}

View File

@@ -314,11 +314,9 @@ public abstract class AbstractJdbcCall {
this.callMetaDataContext.initializeMetaData(dataSource);
// Iterate over the declared RowMappers and register the corresponding SqlParameter
for (Map.Entry<String, RowMapper<?>> entry : this.declaredRowMappers.entrySet()) {
SqlParameter resultSetParameter =
this.callMetaDataContext.createReturnResultSetParameter(entry.getKey(), entry.getValue());
this.declaredParameters.add(resultSetParameter);
}
this.declaredRowMappers.forEach((key, value) -> {
this.declaredParameters.add(this.callMetaDataContext.createReturnResultSetParameter(key, value));
});
this.callMetaDataContext.processParameters(this.declaredParameters);
this.callString = this.callMetaDataContext.createCallString();
@@ -326,8 +324,8 @@ public abstract class AbstractJdbcCall {
logger.debug("Compiled stored procedure. Call string is [" + this.callString + "]");
}
this.callableStatementFactory =
new CallableStatementCreatorFactory(this.callString, this.callMetaDataContext.getCallParameters());
this.callableStatementFactory = new CallableStatementCreatorFactory(
this.callString, this.callMetaDataContext.getCallParameters());
onCompileInternal();
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2016 the original author or authors.
* Copyright 2002-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,8 +22,7 @@ import java.util.Map;
import org.springframework.beans.factory.InitializingBean;
/**
* Registry for registering custom {@link org.springframework.jdbc.support.SQLExceptionTranslator}
* instances for specific databases.
* Registry for custom {@link SQLExceptionTranslator} instances for specific databases.
*
* @author Thomas Risberg
* @since 3.1.1
@@ -50,9 +49,8 @@ public class CustomSQLExceptionTranslatorRegistrar implements InitializingBean {
@Override
public void afterPropertiesSet() {
for (String dbName : this.translators.keySet()) {
CustomSQLExceptionTranslatorRegistry.getInstance().registerTranslator(dbName, this.translators.get(dbName));
}
this.translators.forEach((dbName, translator) ->
CustomSQLExceptionTranslatorRegistry.getInstance().registerTranslator(dbName, translator));
}
}