diff options
Diffstat (limited to 'vespajlib')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/functions/Generate.java | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Generate.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Generate.java index d3a2dc9169c..aaed607aaa1 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Generate.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Generate.java @@ -145,15 +145,17 @@ public class Generate<NAMETYPE extends TypeContext.Name> extends PrimitiveTenso @Override public Tensor getTensor(String name) { - if (name.startsWith("%")) // this is the name of a dimension - return Tensor.from(indexes.indexesForReading()[dimensionIndexFrom(name)]); + Optional<Integer> index = type.indexOfDimension(name); + if (index.isPresent()) // this is the name of a dimension + return Tensor.from(indexes.indexesForReading()[index.get()]); else return context.getTensor(name); } @Override public TensorType getType(NAMETYPE name) { - if (name.name().startsWith("%")) // this is the name of a dimension + Optional<Integer> index = type.indexOfDimension(name.name()); + if (index.isPresent()) // this is the name of a dimension return TensorType.empty; else return context.getType(name); @@ -161,18 +163,13 @@ public class Generate<NAMETYPE extends TypeContext.Name> extends PrimitiveTenso @Override public TensorType getType(String name) { - if (name.startsWith("%")) // this is the name of a dimension + Optional<Integer> index = type.indexOfDimension(name); + if (index.isPresent()) // this is the name of a dimension return TensorType.empty; else return context.getType(name); } - private int dimensionIndexFrom(String nameWithPercentage) { - String name = nameWithPercentage.substring(1); - return type.indexOfDimension(name) - .orElseThrow(() -> new IllegalArgumentException("No dimension '" + name + "' in " + type)); - } - } } |