diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-07-02 17:47:31 -0700 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-07-02 17:47:31 -0700 |
commit | c7083bfed93168d74091dcf09844cdd27d95a279 (patch) | |
tree | 6a136504a194b2642c024f6e2eab66067f16d5f9 /model-integration/src/main/java/ai/vespa/rankingexpression/importer/OrderedTensorType.java | |
parent | 0cd53c0204a8caf9fba1847d7f422cc51248f615 (diff) |
Add inequality constraints
Diffstat (limited to 'model-integration/src/main/java/ai/vespa/rankingexpression/importer/OrderedTensorType.java')
-rw-r--r-- | model-integration/src/main/java/ai/vespa/rankingexpression/importer/OrderedTensorType.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/model-integration/src/main/java/ai/vespa/rankingexpression/importer/OrderedTensorType.java b/model-integration/src/main/java/ai/vespa/rankingexpression/importer/OrderedTensorType.java index 8ea9c9a258d..1cb8f3a2951 100644 --- a/model-integration/src/main/java/ai/vespa/rankingexpression/importer/OrderedTensorType.java +++ b/model-integration/src/main/java/ai/vespa/rankingexpression/importer/OrderedTensorType.java @@ -7,8 +7,11 @@ import com.yahoo.tensor.TensorTypeParser; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; /** @@ -130,15 +133,18 @@ public class OrderedTensorType { } public OrderedTensorType rename(DimensionRenamer renamer) { - System.out.println("Renaming " + this); List<TensorType.Dimension> renamedDimensions = new ArrayList<>(dimensions.size()); + Map<String, String> new2Old = new HashMap<>(); // Just to create meaningful error messages for (TensorType.Dimension dimension : dimensions) { String oldName = dimension.name(); Optional<String> newName = renamer.dimensionNameOf(oldName); - if (!newName.isPresent()) - return this; // presumably, already renamed - if ( ! oldName.equals(newName.get())) - System.out.println(" Renaming " + oldName + " to " + newName.get()); + if ( newName.isEmpty()) return this; // presumably already renamed + + if (new2Old.containsKey(newName.get())) + throw new IllegalArgumentException("Can not rename '" + oldName + "' to '" + newName.get() + "' in " + this + + " as '" + new2Old.get(newName.get()) + "' should also be renamed to it"); + new2Old.put(newName.get(), oldName); + TensorType.Dimension.Type dimensionType = dimension.type(); if (dimensionType == TensorType.Dimension.Type.indexedBound) { renamedDimensions.add(TensorType.Dimension.indexed(newName.get(), dimension.size().get())); |