aboutsummaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/tensor/TensorTypeParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor/TensorTypeParser.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/TensorTypeParser.java22
1 files changed, 15 insertions, 7 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/TensorTypeParser.java b/vespajlib/src/main/java/com/yahoo/tensor/TensorTypeParser.java
index a5733f1cc4c..d5f77be0dd0 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/TensorTypeParser.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/TensorTypeParser.java
@@ -13,6 +13,7 @@ import java.util.regex.Pattern;
* Class for parsing a tensor type spec.
*
* @author geirst
+ * @author bratseth
*/
public class TensorTypeParser {
@@ -54,17 +55,24 @@ public class TensorTypeParser {
return new TensorType.Builder(valueType, dimensions).build();
}
+ public static TensorType.Value toValueType(String valueTypeString) {
+ switch (valueTypeString) {
+ case "double" : return TensorType.Value.DOUBLE;
+ case "float" : return TensorType.Value.FLOAT;
+ default : throw new IllegalArgumentException("Value type must be either 'double' or 'float'" +
+ " but was '" + valueTypeString + "'");
+ }
+ }
+
private static TensorType.Value parseValueTypeSpec(String valueTypeSpec, String fullSpecString) {
if ( ! valueTypeSpec.startsWith("<") || ! valueTypeSpec.endsWith(">"))
throw formatException(fullSpecString, Optional.of("Value type spec must be enclosed in <>"));
- String valueType = valueTypeSpec.substring(1, valueTypeSpec.length() - 1);
- switch (valueType) {
- case "double" : return TensorType.Value.DOUBLE;
- case "float" : return TensorType.Value.FLOAT;
- default : throw formatException(fullSpecString,
- "Value type must be either 'double' or 'float'" +
- " but was '" + valueType + "'");
+ try {
+ return toValueType(valueTypeSpec.substring(1, valueTypeSpec.length() - 1));
+ }
+ catch (IllegalArgumentException e) {
+ throw formatException(fullSpecString, e.getMessage());
}
}