summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-03-14 20:20:31 +0000
committerArne H Juul <arnej@yahooinc.com>2022-03-14 20:20:31 +0000
commitaafdfb4f80827127c74173694f003976bfefe9ec (patch)
tree5627a3675b29549421a83cd3a3e8387318abe295 /config-model
parent60e76f2e7e5fa342f3e448255b275b83d7238426 (diff)
simpler with IdentityHashMap
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java21
1 files changed, 9 insertions, 12 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java
index 9e04a1fcc6c..9b92f1aa80c 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java
@@ -212,15 +212,15 @@ public class DocumentModelBuilder {
lst.add(convert(doc));
model.getDocumentManager().add(lst.getLast());
}
- Set<TypeReplacement> replacements = new HashSet<>();
+ Map<DataType, DataType> replacements = new IdentityHashMap<>();
for(NewDocumentType doc : lst) {
resolveTemporaries(doc.getAllTypes(), lst, replacements);
}
for(NewDocumentType doc : lst) {
- for (var entry : replacements) {
- var old = entry.oldType();
+ for (var entry : replacements.entrySet()) {
+ var old = entry.getKey();
if (doc.getDataType(old.getId()) == old) {
- doc.replace(entry.newType());
+ doc.replace(entry.getValue());
}
}
}
@@ -228,8 +228,7 @@ public class DocumentModelBuilder {
private static void resolveTemporaries(DataTypeCollection dtc,
Collection<NewDocumentType> docs,
- Set<TypeReplacement> replacements)
- {
+ Map<DataType, DataType> replacements) {
for (DataType type : dtc.getTypes()) {
resolveTemporariesRecurse(type, dtc, docs, replacements);
}
@@ -238,11 +237,9 @@ public class DocumentModelBuilder {
@SuppressWarnings("deprecation")
private static DataType resolveTemporariesRecurse(DataType type, DataTypeCollection repo,
Collection<NewDocumentType> docs,
- Set<TypeReplacement> replacements) {
- for (var repl : replacements) {
- if (repl.oldType() == type) {
- return repl.newType();
- }
+ Map<DataType, DataType> replacements) {
+ if (replacements.containsKey(type)) {
+ return replacements.get(type);
}
DataType original = type;
if (type instanceof TemporaryStructuredDataType) {
@@ -315,7 +312,7 @@ public class DocumentModelBuilder {
}
}
if (type != original) {
- replacements.add(new TypeReplacement(original, type));
+ replacements.put(original, type);
}
return type;
}