use StringBuilder for complex string concatenation

This commit is contained in:
igor-suhorukov 2018-03-08 23:22:15 +03:00 committed by Juergen Hoeller
parent 407ecf7334
commit 32b689a994
2 changed files with 17 additions and 17 deletions

View File

@ -634,7 +634,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA
"property path '" + propertyName + "': returned null");
}
}
String indexedPropertyName = tokens.actualName;
StringBuilder indexedPropertyName = new StringBuilder(tokens.actualName);
// apply indexes and map keys
for (int i = 0; i < tokens.keys.length; i++) {
String key = tokens.keys[i];
@ -645,13 +645,13 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA
}
else if (value.getClass().isArray()) {
int index = Integer.parseInt(key);
value = growArrayIfNecessary(value, index, indexedPropertyName);
value = growArrayIfNecessary(value, index, indexedPropertyName.toString());
value = Array.get(value, index);
}
else if (value instanceof List) {
int index = Integer.parseInt(key);
List<Object> list = (List<Object>) value;
growCollectionIfNecessary(list, index, indexedPropertyName, ph, i + 1);
growCollectionIfNecessary(list, index, indexedPropertyName.toString(), ph, i + 1);
value = list.get(index);
}
else if (value instanceof Set) {
@ -686,7 +686,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA
"Property referenced in indexed property path '" + propertyName +
"' is neither an array nor a List nor a Set nor a Map; returned value was [" + value + "]");
}
indexedPropertyName += PROPERTY_KEY_PREFIX + key + PROPERTY_KEY_SUFFIX;
indexedPropertyName.append(PROPERTY_KEY_PREFIX).append(key).append(PROPERTY_KEY_SUFFIX);
}
}
return value;

View File

@ -618,7 +618,7 @@ public class CallMetaDataContext {
public String createCallString() {
Assert.state(this.metaDataProvider != null, "No CallMetaDataProvider available");
String callString;
StringBuilder callString;
int parameterCount = 0;
String catalogNameToUse;
String schemaNameToUse;
@ -637,33 +637,33 @@ public class CallMetaDataContext {
String procedureNameToUse = this.metaDataProvider.procedureNameToUse(getProcedureName());
if (isFunction() || isReturnValueRequired()) {
callString = "{? = call " +
(StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : "") +
(StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : "") +
procedureNameToUse + "(";
callString = new StringBuilder().append("{? = call ").
append(StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : "").
append(StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : "").
append(procedureNameToUse).append("(");
parameterCount = -1;
}
else {
callString = "{call " +
(StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : "") +
(StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : "") +
procedureNameToUse + "(";
callString = new StringBuilder().append("{call ").
append(StringUtils.hasLength(catalogNameToUse) ? catalogNameToUse + "." : "").
append(StringUtils.hasLength(schemaNameToUse) ? schemaNameToUse + "." : "").
append(procedureNameToUse).append("(");
}
for (SqlParameter parameter : this.callParameters) {
if (!(parameter.isResultsParameter())) {
if (parameterCount > 0) {
callString += ", ";
callString.append(", ");
}
if (parameterCount >= 0) {
callString += createParameterBinding(parameter);
callString.append(createParameterBinding(parameter));
}
parameterCount++;
}
}
callString += ")}";
callString.append(")}");
return callString;
return callString.toString();
}
/**