aboutsummaryrefslogtreecommitdiffstats
path: root/model-integration/src/main/java/ai/vespa/rankingexpression/importer/OrderedTensorType.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-07-02 17:47:31 -0700
committerJon Bratseth <bratseth@verizonmedia.com>2019-07-02 17:47:31 -0700
commitc7083bfed93168d74091dcf09844cdd27d95a279 (patch)
tree6a136504a194b2642c024f6e2eab66067f16d5f9 /model-integration/src/main/java/ai/vespa/rankingexpression/importer/OrderedTensorType.java
parent0cd53c0204a8caf9fba1847d7f422cc51248f615 (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.java16
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()));