61 lines
2.3 KiB
Diff
61 lines
2.3 KiB
Diff
# UNDF: UNDF-2026-000000174
|
|
diff --git a/src/main/java/org/apache/ibatis/mapping/ResultMapping.java b/src/main/java/org/apache/ibatis/mapping/ResultMapping.java
|
|
--- a/src/main/java/org/apache/ibatis/mapping/ResultMapping.java
|
|
+++ b/src/main/java/org/apache/ibatis/mapping/ResultMapping.java
|
|
@@ -18,8 +18,9 @@
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
+import java.util.EnumSet;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
import org.apache.ibatis.session.Configuration;
|
|
import org.apache.ibatis.type.JdbcType;
|
|
import org.apache.ibatis.type.TypeHandler;
|
|
@@ -42,7 +43,7 @@ public class ResultMapping {
|
|
private Set<String> notNullColumns;
|
|
private String columnPrefix;
|
|
- private List<ResultFlag> flags;
|
|
+ private Set<ResultFlag> flags;
|
|
private List<ResultMapping> composites;
|
|
private String resultSet;
|
|
private String foreignColumn;
|
|
@@ -66,7 +67,7 @@ public class ResultMapping {
|
|
public Builder(Configuration configuration, String property) {
|
|
resultMapping.configuration = configuration;
|
|
resultMapping.property = property;
|
|
- resultMapping.flags = new ArrayList<>();
|
|
+ resultMapping.flags = EnumSet.noneOf(ResultFlag.class);
|
|
resultMapping.composites = new ArrayList<>();
|
|
resultMapping.lazy = configuration.isLazyLoadingEnabled();
|
|
}
|
|
@@ -133,7 +134,11 @@ public class ResultMapping {
|
|
|
|
public Builder flags(List<ResultFlag> flags) {
|
|
- resultMapping.flags = flags;
|
|
+ // Convert to EnumSet for O(1) contains() — ArrayList.contains() is O(F) per call
|
|
+ EnumSet<ResultFlag> enumFlags = EnumSet.noneOf(ResultFlag.class);
|
|
+ if (flags != null && !flags.isEmpty()) {
|
|
+ enumFlags.addAll(flags);
|
|
+ }
|
|
+ resultMapping.flags = enumFlags;
|
|
return this;
|
|
}
|
|
|
|
@@ -153,7 +158,7 @@ public class ResultMapping {
|
|
|
|
public ResultMapping build() {
|
|
// lock down collections
|
|
- resultMapping.flags = Collections.unmodifiableList(resultMapping.flags);
|
|
+ resultMapping.flags = Collections.unmodifiableSet(resultMapping.flags);
|
|
resultMapping.composites = Collections.unmodifiableList(resultMapping.composites);
|
|
validate();
|
|
return resultMapping;
|
|
@@ -230,7 +235,7 @@ public class ResultMapping {
|
|
return columnPrefix;
|
|
}
|
|
|
|
- public List<ResultFlag> getFlags() {
|
|
+ public Set<ResultFlag> getFlags() {
|
|
return flags;
|
|
}
|