diff --git a/src/main/java/org/apache/ibatis/builder/MapperBuilderAssistant.java b/src/main/java/org/apache/ibatis/builder/MapperBuilderAssistant.java index 5d3241880e1..519d78543ae 100644 --- a/src/main/java/org/apache/ibatis/builder/MapperBuilderAssistant.java +++ b/src/main/java/org/apache/ibatis/builder/MapperBuilderAssistant.java @@ -308,9 +308,7 @@ private ParameterMap getStatementParameterMap(String parameterMapName, Class throw new IncompleteElementException("Could not find parameter map " + parameterMapName, e); } } else if (parameterTypeClass != null) { - List parameterMappings = new ArrayList<>(); - parameterMap = new ParameterMap.Builder(configuration, statementId + "-Inline", parameterTypeClass, - parameterMappings).build(); + parameterMap = ParameterMap.inline(statementId, parameterTypeClass); } return parameterMap; } @@ -330,9 +328,7 @@ private List getStatementResultMaps(String resultMap, Class result } } } else if (resultType != null) { - ResultMap inlineResultMap = new ResultMap.Builder(configuration, statementId + "-Inline", resultType, - new ArrayList<>(), null).build(); - resultMaps.add(inlineResultMap); + resultMaps.add(ResultMap.inline(configuration, statementId, resultType)); } return resultMaps; } diff --git a/src/main/java/org/apache/ibatis/mapping/ParameterMap.java b/src/main/java/org/apache/ibatis/mapping/ParameterMap.java index c0e55b10e65..822b5f8031d 100644 --- a/src/main/java/org/apache/ibatis/mapping/ParameterMap.java +++ b/src/main/java/org/apache/ibatis/mapping/ParameterMap.java @@ -32,6 +32,15 @@ public class ParameterMap { private ParameterMap() { } + public static ParameterMap inline(String statementId, Class parameterType) { + ParameterMap inlineParameterMap = new ParameterMap(); + inlineParameterMap.id = statementId + "-Inline"; + inlineParameterMap.type = parameterType; + // lock down collections + inlineParameterMap.parameterMappings = Collections.emptyList(); + return inlineParameterMap; + } + public static class Builder { private final ParameterMap parameterMap = new ParameterMap(); diff --git a/src/main/java/org/apache/ibatis/mapping/ResultMap.java b/src/main/java/org/apache/ibatis/mapping/ResultMap.java index 7afaa098f7b..23099d26487 100644 --- a/src/main/java/org/apache/ibatis/mapping/ResultMap.java +++ b/src/main/java/org/apache/ibatis/mapping/ResultMap.java @@ -48,6 +48,21 @@ public class ResultMap { private ResultMap() { } + public static ResultMap inline(Configuration configuration, String statementId, Class resultType) { + ResultMap inlineResultMap = new ResultMap(); + inlineResultMap.configuration = configuration; + inlineResultMap.id = statementId + "-Inline"; + inlineResultMap.type = resultType; + // lock down collections + inlineResultMap.resultMappings = Collections.emptyList(); + inlineResultMap.idResultMappings = Collections.emptyList(); + inlineResultMap.constructorResultMappings = Collections.emptyList(); + inlineResultMap.propertyResultMappings = Collections.emptyList(); + inlineResultMap.mappedColumns = Collections.emptySet(); + inlineResultMap.mappedProperties = Collections.emptySet(); + return inlineResultMap; + } + public static class Builder { private final ResultMap resultMap = new ResultMap(); diff --git a/src/main/java/org/apache/ibatis/type/SimpleTypeRegistry.java b/src/main/java/org/apache/ibatis/type/SimpleTypeRegistry.java index ab0d520ba0b..7f7086ca903 100644 --- a/src/main/java/org/apache/ibatis/type/SimpleTypeRegistry.java +++ b/src/main/java/org/apache/ibatis/type/SimpleTypeRegistry.java @@ -50,7 +50,10 @@ private SimpleTypeRegistry() { /** * Tells us if the class passed in is a known common type - * @param clazz The class to check + * + * @param clazz + * The class to check + * * @return True if the class is known */ public static boolean isSimpleType(Class clazz) {