summaryrefslogtreecommitdiffstats
path: root/indexinglanguage
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@vespa.ai>2023-09-27 17:28:13 +0200
committerJon Bratseth <bratseth@vespa.ai>2023-09-27 17:28:13 +0200
commit12f9d93fd13a74eb022e8ef0633ff3b1456d345b (patch)
tree82372d0c09dc09dedf9f55bf4290b2e12bbc3cb0 /indexinglanguage
parentb4af421142168c36cc1e8c9bae735731a68fcb20 (diff)
Return the expected output
In if-else expressions, return the output of the executed branch rather than the input. The current behavior was undocumented and quite unexpected, so I suggest we treat that as a bug. Also return the last executed expression in a script as its output (rather than nothing. In addition, improve some error messages.
Diffstat (limited to 'indexinglanguage')
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/ExpressionOptimizer.java2
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldPathUpdateAdapter.java9
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateAdapter.java4
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateHelper.java2
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldValueConverter.java14
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleDocumentAdapter.java8
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ArithmeticExpression.java48
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeExpression.java4
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/CatExpression.java4
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ChoiceExpression.java4
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ConstantExpression.java (renamed from indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SetValueExpression.java)11
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/EmbedExpression.java2
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java6
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Expression.java21
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExpressionList.java4
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachExpression.java6
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldExpression.java4
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarExpression.java2
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/HashExpression.java2
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/HexDecodeExpression.java6
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/IfThenExpression.java98
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/InputExpression.java2
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/JoinExpression.java4
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OptimizePredicateExpression.java4
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptExpression.java18
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SelectInputExpression.java2
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SetVarExpression.java2
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java8
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchExpression.java6
-rw-r--r--indexinglanguage/src/main/javacc/IndexingParser.jj4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionConverterTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionOptimizerTestCase.java6
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitorTestCase.java5
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/SimpleDocumentAdapterTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ValueTransformProviderTestCase.java17
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ArithmeticTestCase.java30
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeTestCase.java6
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64EncodeTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/CatTestCase.java20
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/CompositeExpressionTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/EchoTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExactTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExpressionTestCase.java12
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/FlattenTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachTestCase.java16
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldTestCase.java6
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GuardTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/HexDecodeTestCase.java8
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/HexEncodeTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/IfThenTestCase.java53
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/InputTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/JoinTestCase.java6
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/LowerCaseTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/MathResolverTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/NGramTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/NormalizeTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/OptimizePredicateTestCase.java12
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/OutputAssert.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ParenthesisTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptTestCase.java22
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SelectInputTestCase.java12
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetLanguageTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetValueTestCase.java18
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetVarTestCase.java6
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SimpleExpression.java31
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SplitTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/StatementTestCase.java8
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SubstringTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchTestCase.java18
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ThisTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToArrayTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToBoolTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToByteTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToDoubleTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToEpochSecondExpressionTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToFloatTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToIntegerTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToLongTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToPositionTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToStringTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToWsetTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/TokenizeTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/TrimTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ZCurveTestCase.java4
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ExpressionTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/FieldNameTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ScriptTestCase.java4
89 files changed, 369 insertions, 372 deletions
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/ExpressionOptimizer.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/ExpressionOptimizer.java
index 5df066f06fa..1a1e26b1091 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/ExpressionOptimizer.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/ExpressionOptimizer.java
@@ -70,7 +70,7 @@ public class ExpressionOptimizer extends ExpressionConverter {
}
return exp instanceof InputExpression ||
exp instanceof NowExpression ||
- exp instanceof SetValueExpression ||
+ exp instanceof ConstantExpression ||
exp instanceof HostNameExpression ||
exp instanceof GetVarExpression;
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldPathUpdateAdapter.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldPathUpdateAdapter.java
index 3c3f75a6693..24ed6b898fd 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldPathUpdateAdapter.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldPathUpdateAdapter.java
@@ -75,7 +75,7 @@ public class FieldPathUpdateAdapter implements UpdateAdapter {
if (type == FieldPathEntry.Type.STRUCT_FIELD) {
if (!(value instanceof StructuredFieldValue)) {
throw new IllegalArgumentException("Expected structured field value, got " +
- value.getClass().getName() + ".");
+ value.getClass().getName());
}
for (Iterator<Map.Entry<Field, FieldValue>> it = ((StructuredFieldValue)value).iterator(); it.hasNext();) {
Map.Entry<Field, FieldValue> structEntry = it.next();
@@ -84,8 +84,7 @@ public class FieldPathUpdateAdapter implements UpdateAdapter {
createUpdatesAt(nextPath, structEntry.getValue(), idx + 1, out);
}
} else if (type == FieldPathEntry.Type.MAP_KEY) {
- if (value instanceof WeightedSet) {
- WeightedSet wset = (WeightedSet)value;
+ if (value instanceof WeightedSet wset) {
for (Iterator<FieldValue> it = wset.fieldValueIterator(); it.hasNext();) {
FieldValue wsetEntry = it.next();
List<FieldPathEntry> nextPath = new ArrayList<>(path);
@@ -102,7 +101,7 @@ public class FieldPathUpdateAdapter implements UpdateAdapter {
}
} else {
throw new IllegalArgumentException("Expected map or weighted set, got " +
- value.getClass().getName() + ".");
+ value.getClass().getName());
}
} else {
path.add(pathEntry);
@@ -111,7 +110,7 @@ public class FieldPathUpdateAdapter implements UpdateAdapter {
} else if (update instanceof AddFieldPathUpdate) {
if (!(value instanceof Array)) {
throw new IllegalStateException("Expected array, got " +
- value.getClass().getName() + ".");
+ value.getClass().getName());
}
out.addFieldPathUpdate(new AddFieldPathUpdate(update.getDocumentType(), new FieldPath(path).toString(),
update.getOriginalWhereClause(), (Array)value));
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateAdapter.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateAdapter.java
index 2601c5d0f71..b2ef838bcc4 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateAdapter.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateAdapter.java
@@ -152,7 +152,7 @@ public class FieldUpdateAdapter implements UpdateAdapter {
if (val instanceof Array) {
lst.addAll(createMapValueUpdatesForArray((Array)val, (MapValueUpdate)upd));
} else if (val instanceof MapFieldValue) {
- throw new UnsupportedOperationException("Can not map into a " + val.getClass().getName() + ".");
+ throw new UnsupportedOperationException("Can not map into a " + val.getClass().getName());
} else if (val instanceof StructuredFieldValue) {
lst.addAll(createMapValueUpdatesForStruct((StructuredFieldValue)val, (MapValueUpdate)upd));
} else if (val instanceof WeightedSet) {
@@ -168,7 +168,7 @@ public class FieldUpdateAdapter implements UpdateAdapter {
lst.add(upd);
} else {
throw new UnsupportedOperationException(
- "Value update type " + upd.getClass().getName() + " not supported.");
+ "Value update type " + upd.getClass().getName() + " not supported");
}
return lst;
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateHelper.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateHelper.java
index 8c32f2e451d..a7fed91c360 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateHelper.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateHelper.java
@@ -95,7 +95,7 @@ public abstract class FieldUpdateHelper {
return applyUpdate(nestedUpdate, value);
}
} else if (value instanceof MapFieldValue) {
- throw new UnsupportedOperationException("Can not map into a " + value.getClass().getName() + ".");
+ throw new UnsupportedOperationException("Can not map into a " + value.getClass().getName());
} else if (value instanceof StructuredFieldValue) {
Field field = ((StructuredFieldValue)value).getField(String.valueOf(update.getValue()));
if (field == null) {
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldValueConverter.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldValueConverter.java
index 4f96f2b7a31..d2cf97273ad 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldValueConverter.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldValueConverter.java
@@ -49,7 +49,7 @@ public abstract class FieldValueConverter {
nextType = nextVal.getDataType();
} else if (!nextType.isValueCompatible(nextVal)) {
throw new IllegalArgumentException("Expected " + nextType.getName() + ", got " +
- nextVal.getDataType().getName() + ".");
+ nextVal.getDataType().getName());
}
next.add(nextVal);
}
@@ -63,7 +63,7 @@ public abstract class FieldValueConverter {
@SuppressWarnings({ "unchecked", "rawtypes" })
private FieldValue convertMap(MapFieldValue<FieldValue, FieldValue> val) {
- Map<FieldValue, FieldValue> next = new LinkedHashMap<FieldValue, FieldValue>();
+ Map<FieldValue, FieldValue> next = new LinkedHashMap<>();
DataType nextKeyType = null, nextValType = null;
for (Map.Entry<FieldValue, FieldValue> entry : val.entrySet()) {
FieldValue prevKey = entry.getKey();
@@ -75,7 +75,7 @@ public abstract class FieldValueConverter {
nextKeyType = nextKey.getDataType();
} else if (!nextKeyType.isValueCompatible(nextKey)) {
throw new IllegalArgumentException("Expected " + nextKeyType.getName() + ", got " +
- nextKey.getDataType().getName() + ".");
+ nextKey.getDataType().getName());
}
FieldValue prevVal = entry.getValue();
FieldValue nextVal = convert(prevVal);
@@ -86,7 +86,7 @@ public abstract class FieldValueConverter {
nextValType = nextVal.getDataType();
} else if (!nextValType.isValueCompatible(nextVal)) {
throw new IllegalArgumentException("Expected " + nextValType.getName() + ", got " +
- nextVal.getDataType().getName() + ".");
+ nextVal.getDataType().getName());
}
next.put(nextKey, nextVal);
}
@@ -100,7 +100,7 @@ public abstract class FieldValueConverter {
@SuppressWarnings({ "unchecked", "rawtypes" })
private FieldValue convertWset(WeightedSet val) {
- Map<FieldValue, Integer> next = new LinkedHashMap<FieldValue, Integer>();
+ Map<FieldValue, Integer> next = new LinkedHashMap<>();
DataType nextType = null;
for (Iterator<FieldValue> it = val.fieldValueIterator(); it.hasNext();) {
FieldValue prevKey = it.next();
@@ -114,7 +114,7 @@ public abstract class FieldValueConverter {
nextType = nextKey.getDataType();
} else if (!nextType.isValueCompatible(nextKey)) {
throw new IllegalArgumentException("Expected " + nextType.getName() + ", got " +
- nextKey.getDataType().getName() + ".");
+ nextKey.getDataType().getName());
}
next.put(nextKey, prevVal);
}
@@ -143,7 +143,7 @@ public abstract class FieldValueConverter {
}
/**
- * Returns whether or not the given {@link FieldValue} should be converted. If this method returns <em>false</em>,
+ * Returns whether the given {@link FieldValue} should be converted. If this method returns <em>false</em>,
* the converter will proceed to traverse the value itself to see if its internal can be converted.
*
* @param value the value to check
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleDocumentAdapter.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleDocumentAdapter.java
index f36c44539c7..bab1f5fe7c0 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleDocumentAdapter.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/SimpleDocumentAdapter.java
@@ -41,7 +41,7 @@ public class SimpleDocumentAdapter implements DocumentAdapter {
try {
return input.getDataType().buildFieldPath(fieldName).getResultingDataType();
} catch (IllegalArgumentException e) {
- throw new VerificationException(exp, "Input field '" + fieldName + "' not found.");
+ throw new VerificationException(exp, "Input field '" + fieldName + "' not found");
}
}
@@ -67,12 +67,12 @@ public class SimpleDocumentAdapter implements DocumentAdapter {
public void tryOutputType(Expression exp, String fieldName, DataType valueType) {
Field field = output.getDataType().getField(fieldName);
if (field == null) {
- throw new VerificationException(exp, "Field '" + fieldName + "' not found.");
+ throw new VerificationException(exp, "Field '" + fieldName + "' not found");
}
DataType fieldType = field.getDataType();
if (!fieldType.isAssignableFrom(valueType)) {
throw new VerificationException(exp, "Can not assign " + valueType.getName() + " to field '" +
- fieldName + "' which is " + fieldType.getName() + ".");
+ fieldName + "' which is " + fieldType.getName());
}
}
@@ -81,7 +81,7 @@ public class SimpleDocumentAdapter implements DocumentAdapter {
Field field = output.getField(fieldName);
if (field == null) {
throw new IllegalArgumentException("Field '" + fieldName + "' not found in document type '" +
- output.getDataType().getName() + "'.");
+ output.getDataType().getName());
}
output.setFieldValue(field, fieldValue);
return this;
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ArithmeticExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ArithmeticExpression.java
index b7ee444975f..8fff5d488c2 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ArithmeticExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ArithmeticExpression.java
@@ -42,28 +42,28 @@ public final class ArithmeticExpression extends CompositeExpression {
}
}
- private final Expression lhs;
+ private final Expression left;
private final Operator op;
- private final Expression rhs;
+ private final Expression right;
- public ArithmeticExpression(Expression lhs, Operator op, Expression rhs) {
- super(requiredInputType(lhs, rhs));
- lhs.getClass(); // throws NullPointerException
+ public ArithmeticExpression(Expression left, Operator op, Expression right) {
+ super(requiredInputType(left, right));
+ left.getClass(); // throws NullPointerException
op.getClass();
- rhs.getClass();
- this.lhs = lhs;
+ right.getClass();
+ this.left = left;
this.op = op;
- this.rhs = rhs;
+ this.right = right;
}
@Override
public ArithmeticExpression convertChildren(ExpressionConverter converter) {
// TODO: branch()?
- return new ArithmeticExpression(converter.convert(lhs), op, converter.convert(rhs));
+ return new ArithmeticExpression(converter.convert(left), op, converter.convert(right));
}
public Expression getLeftHandSide() {
- return lhs;
+ return left;
}
public Operator getOperator() {
@@ -71,21 +71,21 @@ public final class ArithmeticExpression extends CompositeExpression {
}
public Expression getRightHandSide() {
- return rhs;
+ return right;
}
@Override
protected void doExecute(ExecutionContext context) {
FieldValue input = context.getValue();
- context.setValue(evaluate(context.setValue(input).execute(lhs).getValue(),
- context.setValue(input).execute(rhs).getValue()));
+ context.setValue(evaluate(context.setValue(input).execute(left).getValue(),
+ context.setValue(input).execute(right).getValue()));
}
@Override
protected void doVerify(VerificationContext context) {
DataType input = context.getValueType();
- context.setValueType(evaluate(context.setValueType(input).execute(lhs).getValueType(),
- context.setValueType(input).execute(rhs).getValueType()));
+ context.setValueType(evaluate(context.setValueType(input).execute(left).getValueType(),
+ context.setValueType(input).execute(right).getValueType()));
}
private static DataType requiredInputType(Expression lhs, Expression rhs) {
@@ -99,7 +99,7 @@ public final class ArithmeticExpression extends CompositeExpression {
}
if (!lhsType.equals(rhsType)) {
throw new VerificationException(ArithmeticExpression.class, "Operands require conflicting input types, " +
- lhsType.getName() + " vs " + rhsType.getName() + ".");
+ lhsType.getName() + " vs " + rhsType.getName());
}
return lhsType;
}
@@ -111,7 +111,7 @@ public final class ArithmeticExpression extends CompositeExpression {
@Override
public String toString() {
- return lhs + " " + op + " " + rhs;
+ return left + " " + op + " " + right;
}
@Override
@@ -120,13 +120,13 @@ public final class ArithmeticExpression extends CompositeExpression {
return false;
}
ArithmeticExpression exp = (ArithmeticExpression)obj;
- if (!lhs.equals(exp.lhs)) {
+ if (!left.equals(exp.left)) {
return false;
}
if (!op.equals(exp.op)) {
return false;
}
- if (!rhs.equals(exp.rhs)) {
+ if (!right.equals(exp.right)) {
return false;
}
return true;
@@ -134,12 +134,12 @@ public final class ArithmeticExpression extends CompositeExpression {
@Override
public int hashCode() {
- return getClass().hashCode() + lhs.hashCode() + op.hashCode() + rhs.hashCode();
+ return getClass().hashCode() + left.hashCode() + op.hashCode() + right.hashCode();
}
private DataType evaluate(DataType lhs, DataType rhs) {
if (lhs == null || rhs == null) {
- throw new VerificationException(this, "Attempting to perform arithmetic on a null value.");
+ throw new VerificationException(this, "Attempting to perform arithmetic on a null value");
}
if (!(lhs instanceof NumericDataType) ||
!(rhs instanceof NumericDataType))
@@ -210,12 +210,12 @@ public final class ArithmeticExpression extends CompositeExpression {
return BigDecimal.valueOf(((LongFieldValue)value).getLong());
}
throw new IllegalArgumentException("Unsupported numeric field value type '" +
- value.getClass().getName() + "'.");
+ value.getClass().getName() + "'");
}
@Override
public void selectMembers(ObjectPredicate predicate, ObjectOperation operation) {
- lhs.select(predicate, operation);
- rhs.select(predicate, operation);
+ left.select(predicate, operation);
+ right.select(predicate, operation);
}
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeExpression.java
index 2474dadab77..d5b5fa2ddfa 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeExpression.java
@@ -23,11 +23,11 @@ public final class Base64DecodeExpression extends Expression {
return;
}
if (input.length() > 12) {
- throw new NumberFormatException("Base64 value '" + input + "' is out of range.");
+ throw new NumberFormatException("Base64 value '" + input + "' is out of range");
}
byte[] decoded = Base64.getDecoder().decode(input);
if (decoded == null || decoded.length == 0) {
- throw new NumberFormatException("Illegal base64 value '" + input + "'.");
+ throw new NumberFormatException("Illegal base64 value '" + input + "'");
}
long output = 0;
for (int i = decoded.length; --i >= 0;) {
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/CatExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/CatExpression.java
index 564ab015e10..b495a0b3bbf 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/CatExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/CatExpression.java
@@ -62,7 +62,7 @@ public final class CatExpression extends ExpressionList<Expression> {
DataType val = context.setValueType(input).execute(exp).getValueType();
types.add(val);
if (val == null) {
- throw new VerificationException(this, "Attempting to concatenate a null value (" + exp + ").");
+ throw new VerificationException(this, "Attempting to concatenate a null value (" + exp + ")");
}
}
context.setValueType(resolveOutputType(types));
@@ -78,7 +78,7 @@ public final class CatExpression extends ExpressionList<Expression> {
prev = next;
} else if (!prev.isAssignableFrom(next)) {
throw new VerificationException(CatExpression.class, "Operands require conflicting input types, " +
- prev.getName() + " vs " + next.getName() + ".");
+ prev.getName() + " vs " + next.getName());
}
}
return prev;
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ChoiceExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ChoiceExpression.java
index 5dbb9292a9d..991cbd30433 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ChoiceExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ChoiceExpression.java
@@ -64,14 +64,14 @@ public class ChoiceExpression extends ExpressionList<Expression> {
previousInput = thisInput;
else if (thisInput != null && !previousInput.isAssignableFrom(thisInput))
throw new VerificationException(ScriptExpression.class, "Choice expression require conflicting input types, " +
- previousInput.getName() + " vs " + thisInput.getName() + ".");
+ previousInput.getName() + " vs " + thisInput.getName());
DataType thisOutput = choice.createdOutputType();
if (previousOutput == null)
previousOutput = thisOutput;
else if (thisOutput != null && !previousOutput.isAssignableFrom(thisOutput))
throw new VerificationException(ScriptExpression.class, "Choice expression produce conflicting output types, " +
- previousOutput.getName() + " vs " + thisOutput.getName() + ".");
+ previousOutput.getName() + " vs " + thisOutput.getName());
}
return previousInput;
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SetValueExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ConstantExpression.java
index f7348c24af5..b44d4844c4d 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SetValueExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ConstantExpression.java
@@ -7,17 +7,18 @@ import com.yahoo.document.datatypes.LongFieldValue;
import com.yahoo.document.datatypes.StringFieldValue;
import com.yahoo.text.StringUtilities;
+import java.util.Objects;
+
/**
* @author Simon Thoresen Hult
*/
-public final class SetValueExpression extends Expression {
+public final class ConstantExpression extends Expression {
private final FieldValue value;
- public SetValueExpression(FieldValue value) {
+ public ConstantExpression(FieldValue value) {
super(null);
- value.getClass(); // throws NullPointerException
- this.value = value;
+ this.value = Objects.requireNonNull(value);
}
public FieldValue getValue() {
@@ -52,7 +53,7 @@ public final class SetValueExpression extends Expression {
@Override
public boolean equals(Object obj) {
- if (!(obj instanceof SetValueExpression rhs)) return false;
+ if (!(obj instanceof ConstantExpression rhs)) return false;
if (!value.equals(rhs.value)) return false;
return true;
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/EmbedExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/EmbedExpression.java
index 5ee5fea3158..0407e17596b 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/EmbedExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/EmbedExpression.java
@@ -116,7 +116,7 @@ public class EmbedExpression extends Expression {
String outputField = context.getOutputField();
if (outputField == null)
throw new VerificationException(this, "No output field in this statement: " +
- "Don't know what tensor type to embed into.");
+ "Don't know what tensor type to embed into");
targetType = toTargetTensor(context.getInputType(this, outputField));
if ( ! validTarget(targetType))
throw new VerificationException(this, "The embedding target field must either be a dense 1d tensor, " +
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java
index f01f2fcc9fb..7f0abfd64db 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java
@@ -50,7 +50,7 @@ public class ExecutionContext implements FieldTypeAdapter, FieldValueAdapter, Cl
@Override
public FieldValue getInputValue(String fieldName) {
if (adapter == null) {
- throw new IllegalStateException("Can not get field '" + fieldName + "' because adapter is null.");
+ throw new IllegalStateException("Can not get field '" + fieldName + "' because adapter is null");
}
return adapter.getInputValue(fieldName);
}
@@ -58,7 +58,7 @@ public class ExecutionContext implements FieldTypeAdapter, FieldValueAdapter, Cl
@Override
public FieldValue getInputValue(FieldPath fieldPath) {
if (adapter == null) {
- throw new IllegalStateException("Can not get field '" + fieldPath + "' because adapter is null.");
+ throw new IllegalStateException("Can not get field '" + fieldPath + "' because adapter is null");
}
return adapter.getInputValue(fieldPath);
}
@@ -71,7 +71,7 @@ public class ExecutionContext implements FieldTypeAdapter, FieldValueAdapter, Cl
@Override
public ExecutionContext setOutputValue(Expression exp, String fieldName, FieldValue fieldValue) {
if (adapter == null)
- throw new IllegalStateException("Can not set field '" + fieldName + "' because adapter is null.");
+ throw new IllegalStateException("Can not set field '" + fieldName + "' because adapter is null");
adapter.setOutputValue(exp, fieldName, fieldValue);
return this;
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Expression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Expression.java
index f498b871096..a6f117beb40 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Expression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Expression.java
@@ -28,8 +28,8 @@ public abstract class Expression extends Selectable {
* Creates an expression
*
* @param inputType the type of the input this expression can work with.
- * UnresolvedDataType.INSTANCE if it works with any type,
- * and null if it does not consume any input.
+ * UnresolvedDataType.INSTANCE if it works with any type,
+ * and null if it does not consume any input.
*/
protected Expression(DataType inputType) {
this.inputType = inputType;
@@ -93,7 +93,7 @@ public abstract class Expression extends Selectable {
}
if (!inputType.isValueCompatible(input)) {
throw new IllegalArgumentException("Expression '" + this + "' expected " + inputType.getName() +
- " input, got " + input.getDataType().getName() + ".");
+ " input, got " + input.getDataType().getName());
}
}
doExecute(context);
@@ -102,7 +102,7 @@ public abstract class Expression extends Selectable {
FieldValue output = context.getValue();
if (output != null && !outputType.isValueCompatible(output)) {
throw new IllegalStateException("Expression '" + this + "' expected " + outputType.getName() +
- " output, got " + output.getDataType().getName() + ".");
+ " output, got " + output.getDataType().getName());
}
}
return context.getValue();
@@ -163,14 +163,14 @@ public abstract class Expression extends Selectable {
if (inputType != null) {
DataType input = context.getValueType();
if (input == null) {
- throw new VerificationException(this, "Expected " + inputType.getName() + " input, got null.");
+ throw new VerificationException(this, "Expected " + inputType.getName() + " input, but no input is specified");
}
if (input.getPrimitiveType() == UnresolvedDataType.INSTANCE) {
- throw new VerificationException(this, "Failed to resolve input type.");
+ throw new VerificationException(this, "Failed to resolve input type");
}
if (!inputType.isAssignableFrom(input)) {
throw new VerificationException(this, "Expected " + inputType.getName() + " input, got " +
- input.getName() + ".");
+ input.getName());
}
}
doVerify(context);
@@ -178,14 +178,13 @@ public abstract class Expression extends Selectable {
if (outputType != null) {
DataType output = context.getValueType();
if (output == null) {
- throw new VerificationException(this, "Expected " + outputType.getName() + " output, got null.");
+ throw new VerificationException(this, "Expected " + outputType.getName() + " output, but no output is specified");
}
if (output.getPrimitiveType() == UnresolvedDataType.INSTANCE) {
- throw new VerificationException(this, "Failed to resolve output type.");
+ throw new VerificationException(this, "Failed to resolve output type");
}
if (!outputType.isAssignableFrom(output)) {
- throw new VerificationException(this, "Expected " + outputType.getName() + " output, got " +
- output.getName() + ".");
+ throw new VerificationException(this, "Expected " + outputType.getName() + " output, got " + output.getName());
}
}
return context.getValueType();
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExpressionList.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExpressionList.java
index 57de66f80a0..f3e9e33d841 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExpressionList.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExpressionList.java
@@ -21,9 +21,9 @@ public abstract class ExpressionList<T extends Expression> extends CompositeExpr
private final List<T> expressions = new LinkedList<T>();
- protected ExpressionList(Iterable<? extends T> lst, DataType inputType) {
+ protected ExpressionList(Iterable<? extends T> expressions, DataType inputType) {
super(inputType);
- for (T exp : lst) {
+ for (T exp : expressions) {
this.expressions.add(exp);
}
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachExpression.java
index 3053a391823..7e32c93faff 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachExpression.java
@@ -52,7 +52,7 @@ public final class ForEachExpression extends CompositeExpression {
context.setValue(new MyConverter(context, exp).convert(input));
} else {
throw new IllegalArgumentException("Expected Array, Struct or WeightedSet input, got " +
- input.getDataType().getName() + ".");
+ input.getDataType().getName());
}
}
@@ -80,13 +80,13 @@ public final class ForEachExpression extends CompositeExpression {
DataType structValueType = context.setValueType(fieldType).execute(exp).getValueType();
if (!fieldType.isAssignableFrom(structValueType))
throw new VerificationException(this, "Expected " + fieldType.getName() + " output, got " +
- structValueType.getName() + ".");
+ structValueType.getName());
}
context.setValueType(valueType);
}
else {
throw new VerificationException(this, "Expected Array, Struct or WeightedSet input, got " +
- valueType.getName() + ".");
+ valueType.getName());
}
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldExpression.java
index ecb6980f795..8a0fc9a56ec 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldExpression.java
@@ -27,7 +27,7 @@ public final class GetFieldExpression extends Expression {
protected void doExecute(ExecutionContext context) {
FieldValue input = context.getValue();
if (!(input instanceof StructuredFieldValue struct)) {
- throw new IllegalArgumentException("Expected structured input, got " + input.getDataType().getName() + ".");
+ throw new IllegalArgumentException("Expected structured input, got " + input.getDataType().getName());
}
Field field = struct.getField(fieldName);
if (field == null) {
@@ -41,7 +41,7 @@ public final class GetFieldExpression extends Expression {
protected void doVerify(VerificationContext context) {
DataType input = context.getValueType();
if (!(input instanceof StructuredDataType)) {
- throw new VerificationException(this, "Expected structured input, got " + input.getName() + ".");
+ throw new VerificationException(this, "Expected structured input, got " + input.getName());
}
Field field = ((StructuredDataType)input).getField(fieldName);
if (field == null) {
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarExpression.java
index 4ebf5da2ff8..54e85be1986 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarExpression.java
@@ -28,7 +28,7 @@ public final class GetVarExpression extends Expression {
protected void doVerify(VerificationContext context) {
DataType input = context.getVariable(varName);
if (input == null) {
- throw new VerificationException(this, "Variable '" + varName + "' not found.");
+ throw new VerificationException(this, "Variable '" + varName + "' not found");
}
context.setValueType(input);
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/HashExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/HashExpression.java
index 2952692b5d0..3b4c1b432bf 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/HashExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/HashExpression.java
@@ -63,7 +63,7 @@ public class HashExpression extends Expression {
String outputField = context.getOutputField();
if (outputField == null)
throw new VerificationException(this, "No output field in this statement: " +
- "Don't know what value to hash to.");
+ "Don't know what value to hash to");
DataType outputFieldType = context.getInputType(this, outputField);
if ( ! canStoreHash(outputFieldType))
throw new VerificationException(this, "The type of the output field " + outputField +
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/HexDecodeExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/HexDecodeExpression.java
index 93f101a422e..4a2c7381ac0 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/HexDecodeExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/HexDecodeExpression.java
@@ -28,12 +28,12 @@ public final class HexDecodeExpression extends Expression {
try {
output = new BigInteger(input, 16);
} catch (NumberFormatException e) {
- throw new NumberFormatException("Illegal hex value '" + input + "'.");
+ throw new NumberFormatException("Illegal hex value '" + input + "'");
}
if (output.bitLength() > 64) {
- throw new NumberFormatException("Hex value '" + input + "' is out of range.");
+ throw new NumberFormatException("Hex value '" + input + "' is out of range");
}
- if (output.compareTo(BigInteger.ZERO) == 1 && output.bitLength() == 64) {
+ if (output.compareTo(BigInteger.ZERO) > 0 && output.bitLength() == 64) {
output = output.subtract(ULONG_MAX); // flip to negative
}
context.setValue(new LongFieldValue(output.longValue()));
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/IfThenExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/IfThenExpression.java
index f05795aa234..e0fb4e0337a 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/IfThenExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/IfThenExpression.java
@@ -27,7 +27,7 @@ public final class IfThenExpression extends CompositeExpression {
private final String img;
- private Comparator(String img) {
+ Comparator(String img) {
this.img = img;
}
@@ -38,77 +38,67 @@ public final class IfThenExpression extends CompositeExpression {
}
- private final Expression lhs;
- private final Comparator cmp;
- private final Expression rhs;
+ private final Expression left;
+ private final Comparator comparator;
+ private final Expression right;
private final Expression ifTrue;
private final Expression ifFalse;
- public IfThenExpression(Expression lhs, Comparator cmp, Expression rhs, Expression ifTrue) {
- this(lhs, cmp, rhs, ifTrue, null);
+ public IfThenExpression(Expression lhs, Comparator cmp, Expression right, Expression ifTrue) {
+ this(lhs, cmp, right, ifTrue, null);
}
- public IfThenExpression(Expression lhs, Comparator cmp, Expression rhs, Expression ifTrue, Expression ifFalse) {
- super(resolveInputType(lhs, rhs, ifTrue, ifFalse));
- this.lhs = lhs;
- this.cmp = cmp;
- this.rhs = rhs;
+ public IfThenExpression(Expression lhs, Comparator cmp, Expression right, Expression ifTrue, Expression ifFalse) {
+ super(resolveInputType(lhs, right, ifTrue, ifFalse));
+ this.left = lhs;
+ this.comparator = cmp;
+ this.right = right;
this.ifTrue = ifTrue;
this.ifFalse = ifFalse;
}
@Override
public IfThenExpression convertChildren(ExpressionConverter converter) {
- return new IfThenExpression(converter.branch().convert(lhs),
- cmp,
- converter.branch().convert(rhs),
+ return new IfThenExpression(converter.branch().convert(left),
+ comparator,
+ converter.branch().convert(right),
converter.branch().convert(ifTrue),
converter.branch().convert(ifFalse));
}
@Override
public void setStatementOutput(DocumentType documentType, Field field) {
- lhs.setStatementOutput(documentType, field);
- rhs.setStatementOutput(documentType, field);
+ left.setStatementOutput(documentType, field);
+ right.setStatementOutput(documentType, field);
ifTrue.setStatementOutput(documentType, field);
ifFalse.setStatementOutput(documentType, field);
}
- public Expression getLeftHandSide() {
- return lhs;
- }
+ public Expression getLeftHandSide() { return left; }
- public Comparator getComparator() {
- return cmp;
- }
+ public Comparator getComparator() { return comparator; }
- public Expression getRightHandSide() {
- return rhs;
- }
+ public Expression getRightHandSide() { return right; }
- public Expression getIfTrueExpression() {
- return ifTrue;
- }
+ public Expression getIfTrueExpression() { return ifTrue; }
- public Expression getIfFalseExpression() {
- return ifFalse;
- }
+ public Expression getIfFalseExpression() { return ifFalse; }
@Override
protected void doExecute(ExecutionContext context) {
FieldValue input = context.getValue();
- FieldValue lhsVal = context.setValue(input).execute(lhs).getValue();
- if (lhsVal == null) {
+ FieldValue leftValue = context.setValue(input).execute(left).getValue();
+ if (leftValue == null) {
context.setValue(null);
return;
}
- FieldValue rhsVal = context.setValue(input).execute(rhs).getValue();
- if (rhsVal == null) {
+ FieldValue rightValue = context.setValue(input).execute(right).getValue();
+ if (rightValue == null) {
context.setValue(null);
return;
}
context.setValue(input);
- if (isTrue(lhsVal, cmp, rhsVal)) {
+ if (isTrue(leftValue, comparator, rightValue)) {
ifTrue.execute(context);
} else if (ifFalse != null) {
ifFalse.execute(context);
@@ -118,17 +108,19 @@ public final class IfThenExpression extends CompositeExpression {
@Override
protected void doVerify(VerificationContext context) {
DataType input = context.getValueType();
- context.setValueType(input).execute(lhs);
- context.setValueType(input).execute(rhs);
- context.setValueType(input).execute(ifTrue);
- context.setValueType(input).execute(ifFalse);
- context.setValueType(input);
+ context.setValueType(input).execute(left);
+ context.setValueType(input).execute(right);
+ var trueValue = context.setValueType(input).execute(ifTrue);
+ var falseValue = context.setValueType(input).execute(ifFalse);
+ var valueType = trueValue.getValueType().isAssignableFrom(falseValue.getValueType()) ?
+ trueValue.getValueType() : falseValue.getValueType();
+ context.setValueType(valueType);
}
@Override
public void selectMembers(ObjectPredicate predicate, ObjectOperation operation) {
- select(lhs, predicate, operation);
- select(rhs, predicate, operation);
+ select(left, predicate, operation);
+ select(right, predicate, operation);
select(ifTrue, predicate, operation);
select(ifFalse, predicate, operation);
}
@@ -146,13 +138,19 @@ public final class IfThenExpression extends CompositeExpression {
@Override
public DataType createdOutputType() {
- return null;
+ DataType ifTrueType = ifTrue.createdOutputType();
+ DataType ifFalseType = ifFalse == null ? null : ifFalse.createdOutputType();
+ if (ifTrueType == null || ifFalseType == null) return null;
+ if (ifTrueType.isAssignableFrom(ifFalseType))
+ return ifTrueType;
+ else
+ return ifFalseType;
}
@Override
public String toString() {
StringBuilder ret = new StringBuilder();
- ret.append("if (").append(lhs).append(" ").append(cmp).append(" ").append(rhs).append(") ");
+ ret.append("if (").append(left).append(" ").append(comparator).append(" ").append(right).append(") ");
ret.append(toScriptBlock(ifTrue));
if (ifFalse != null) {
ret.append(" else ").append(toScriptBlock(ifFalse));
@@ -165,13 +163,13 @@ public final class IfThenExpression extends CompositeExpression {
if (!(obj instanceof IfThenExpression exp)) {
return false;
}
- if (!lhs.equals(exp.lhs)) {
+ if (!left.equals(exp.left)) {
return false;
}
- if (!cmp.equals(exp.cmp)) {
+ if (!comparator.equals(exp.comparator)) {
return false;
}
- if (!rhs.equals(exp.rhs)) {
+ if (!right.equals(exp.right)) {
return false;
}
if (!ifTrue.equals(exp.ifTrue)) {
@@ -185,7 +183,7 @@ public final class IfThenExpression extends CompositeExpression {
@Override
public int hashCode() {
- int ret = getClass().hashCode() + lhs.hashCode() + cmp.hashCode() + rhs.hashCode() + ifTrue.hashCode();
+ int ret = getClass().hashCode() + left.hashCode() + comparator.hashCode() + right.hashCode() + ifTrue.hashCode();
if (ifFalse != null) {
ret += ifFalse.hashCode();
}
@@ -201,7 +199,7 @@ public final class IfThenExpression extends CompositeExpression {
}
if (!prev.equals(next)) {
throw new VerificationException(IfThenExpression.class, "Operands require conflicting input types, " +
- prev.getName() + " vs " + next.getName() + ".");
+ prev.getName() + " vs " + next.getName());
}
return prev;
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/InputExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/InputExpression.java
index bba1b09cda2..8534e58694e 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/InputExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/InputExpression.java
@@ -42,7 +42,7 @@ public final class InputExpression extends Expression {
protected void doVerify(VerificationContext context) {
DataType val = context.getInputType(this, fieldName);
if (val == null)
- throw new VerificationException(this, "Field '" + fieldName + "' not found.");
+ throw new VerificationException(this, "Field '" + fieldName + "' not found");
context.setValueType(val);
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/JoinExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/JoinExpression.java
index 1c3582ea695..39325385dde 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/JoinExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/JoinExpression.java
@@ -31,7 +31,7 @@ public final class JoinExpression extends Expression {
protected void doExecute(ExecutionContext context) {
FieldValue input = context.getValue();
if (!(input instanceof Array)) {
- throw new IllegalArgumentException("Expected Array input, got " + input.getDataType().getName() + ".");
+ throw new IllegalArgumentException("Expected Array input, got " + input.getDataType().getName());
}
StringBuilder output = new StringBuilder();
for (Iterator<FieldValue> it = ((Array)input).fieldValueIterator(); it.hasNext(); ) {
@@ -47,7 +47,7 @@ public final class JoinExpression extends Expression {
protected void doVerify(VerificationContext context) {
DataType input = context.getValueType();
if (!(input instanceof ArrayDataType)) {
- throw new VerificationException(this, "Expected Array input, got " + input.getName() + ".");
+ throw new VerificationException(this, "Expected Array input, got " + input.getName());
}
context.setValueType(createdOutputType());
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OptimizePredicateExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OptimizePredicateExpression.java
index d4b6f2e0a0a..97bbb1494e0 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OptimizePredicateExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OptimizePredicateExpression.java
@@ -54,10 +54,10 @@ public final class OptimizePredicateExpression extends Expression {
DataType input = ctx.getVariable(var);
if (input == null) {
if (required) {
- throw new VerificationException(this, "Variable '" + var + "' must be set.");
+ throw new VerificationException(this, "Variable '" + var + "' must be set");
}
} else if (input != type) {
- throw new VerificationException(this, "Variable '" + var + "' must have type " + type.getName() + ".");
+ throw new VerificationException(this, "Variable '" + var + "' must have type " + type.getName());
}
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptExpression.java
index 1a640c9924e..f9ceed4cb34 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptExpression.java
@@ -29,12 +29,12 @@ public final class ScriptExpression extends ExpressionList<StatementExpression>
this(Collections.emptyList());
}
- public ScriptExpression(StatementExpression... lst) {
- this(Arrays.asList(lst));
+ public ScriptExpression(StatementExpression... statements) {
+ this(Arrays.asList(statements));
}
- public ScriptExpression(Collection<? extends StatementExpression> lst) {
- super(lst, resolveInputType(lst));
+ public ScriptExpression(Collection<? extends StatementExpression> statements) {
+ super(statements, resolveInputType(statements));
}
@Override
@@ -67,10 +67,8 @@ public final class ScriptExpression extends ExpressionList<StatementExpression>
@Override
protected void doVerify(VerificationContext context) {
DataType input = context.getValueType();
- for (Expression exp : this) {
+ for (Expression exp : this)
context.setValueType(input).execute(exp);
- }
- context.setValueType(input);
}
private static DataType resolveInputType(Collection<? extends StatementExpression> list) {
@@ -81,7 +79,7 @@ public final class ScriptExpression extends ExpressionList<StatementExpression>
prev = next;
} else if (next != null && !prev.isAssignableFrom(next)) {
throw new VerificationException(ScriptExpression.class, "Statements require conflicting input types, " +
- prev.getName() + " vs " + next.getName() + ".");
+ prev.getName() + " vs " + next.getName());
}
}
return prev;
@@ -89,7 +87,9 @@ public final class ScriptExpression extends ExpressionList<StatementExpression>
@Override
public DataType createdOutputType() {
- return null;
+ var expressions = asList();
+ if (expressions.isEmpty()) return null;
+ return (expressions.get(expressions.size() - 1)).createdOutputType();
}
@Override
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SelectInputExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SelectInputExpression.java
index bb8111f358e..90b2253b520 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SelectInputExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SelectInputExpression.java
@@ -65,7 +65,7 @@ public final class SelectInputExpression extends CompositeExpression {
for (Pair<String, Expression> entry : cases) {
DataType val = context.getInputType(this, entry.getFirst());
if (val == null) {
- throw new VerificationException(this, "Field '" + entry.getFirst() + "' not found.");
+ throw new VerificationException(this, "Field '" + entry.getFirst() + "' not found");
}
context.setValueType(val).execute(entry.getSecond());
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SetVarExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SetVarExpression.java
index a855ba86c9c..c80efbf7d19 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SetVarExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SetVarExpression.java
@@ -30,7 +30,7 @@ public final class SetVarExpression extends Expression {
DataType prev = context.getVariable(varName);
if (prev != null && !prev.equals(next)) {
throw new VerificationException(this, "Attempting to assign conflicting types to variable '" + varName +
- "', " + prev.getName() + " vs " + next.getName() + ".");
+ "', " + prev.getName() + " vs " + next.getName());
}
context.setVariable(varName, next);
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java
index 75f206ef47d..da067935d18 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java
@@ -73,12 +73,12 @@ public final class StatementExpression extends ExpressionList<Expression> {
context.execute(expression);
}
- private static DataType resolveInputType(Iterable<Expression> lst) {
- for (Expression exp : lst) {
- DataType type = exp.requiredInputType();
+ private static DataType resolveInputType(Iterable<Expression> expressions) {
+ for (Expression expression : expressions) {
+ DataType type = expression.requiredInputType();
if (type != null) return type;
- type = exp.createdOutputType();
+ type = expression.createdOutputType();
if (type != null) return null;
}
return null;
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchExpression.java
index c7cf7066483..3bf67ff9c5d 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchExpression.java
@@ -70,7 +70,7 @@ public final class SwitchExpression extends CompositeExpression {
if (input != null) {
if (!(input instanceof StringFieldValue)) {
throw new IllegalArgumentException("Expected " + DataType.STRING.getName() + " input, got " +
- input.getDataType().getName() + ".");
+ input.getDataType().getName());
}
exp = cases.get(String.valueOf(input));
}
@@ -95,11 +95,11 @@ public final class SwitchExpression extends CompositeExpression {
protected void doVerify(VerificationContext context) {
DataType input = context.getValueType();
if (input == null) {
- throw new VerificationException(this, "Expected " + DataType.STRING.getName() + " input, got null.");
+ throw new VerificationException(this, "Expected " + DataType.STRING.getName() + " input, but no input is specified");
}
if (input != DataType.STRING) {
throw new VerificationException(this, "Expected " + DataType.STRING.getName() + " input, got " +
- input.getName() + ".");
+ input.getName());
}
for (Expression exp : cases.values()) {
context.setValueType(input).execute(exp);
diff --git a/indexinglanguage/src/main/javacc/IndexingParser.jj b/indexinglanguage/src/main/javacc/IndexingParser.jj
index d559d9b7260..02372fcadbd 100644
--- a/indexinglanguage/src/main/javacc/IndexingParser.jj
+++ b/indexinglanguage/src/main/javacc/IndexingParser.jj
@@ -32,7 +32,6 @@ import com.yahoo.document.datatypes.*;
import com.yahoo.text.StringUtilities;
import com.yahoo.vespa.indexinglanguage.expressions.*;
import com.yahoo.vespa.indexinglanguage.linguistics.AnnotatorConfig;
-import com.yahoo.language.process.StemMode;
import com.yahoo.language.process.Embedder;
import com.yahoo.language.Linguistics;
@@ -100,6 +99,7 @@ public class IndexingParser {
return new LongFieldValue(new BigInteger(str).longValue());
}
}
+}}
}
PARSER_END(IndexingParser)
@@ -592,7 +592,7 @@ Expression setValueExp() :
}
{
( val = fieldValue() )
- { return new SetValueExpression(val); }
+ { return new ConstantExpression(val); }
}
Expression setVarExp() :
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionConverterTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionConverterTestCase.java
index 8aeaa084e1b..329ea6c95ba 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionConverterTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionConverterTestCase.java
@@ -10,6 +10,7 @@ import com.yahoo.vespa.indexinglanguage.expressions.Base64DecodeExpression;
import com.yahoo.vespa.indexinglanguage.expressions.Base64EncodeExpression;
import com.yahoo.vespa.indexinglanguage.expressions.CatExpression;
import com.yahoo.vespa.indexinglanguage.expressions.ClearStateExpression;
+import com.yahoo.vespa.indexinglanguage.expressions.ConstantExpression;
import com.yahoo.vespa.indexinglanguage.expressions.EchoExpression;
import com.yahoo.vespa.indexinglanguage.expressions.Expression;
import com.yahoo.vespa.indexinglanguage.expressions.ForEachExpression;
@@ -32,7 +33,6 @@ import com.yahoo.vespa.indexinglanguage.expressions.RandomExpression;
import com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression;
import com.yahoo.vespa.indexinglanguage.expressions.SelectInputExpression;
import com.yahoo.vespa.indexinglanguage.expressions.SetLanguageExpression;
-import com.yahoo.vespa.indexinglanguage.expressions.SetValueExpression;
import com.yahoo.vespa.indexinglanguage.expressions.SetVarExpression;
import com.yahoo.vespa.indexinglanguage.expressions.SplitExpression;
import com.yahoo.vespa.indexinglanguage.expressions.StatementExpression;
@@ -103,7 +103,7 @@ public class ExpressionConverterTestCase {
assertConvertable(new SelectInputExpression(new Pair<String, Expression>("foo", new IndexExpression("bar")),
new Pair<String, Expression>("bar", new IndexExpression("foo"))));
assertConvertable(new SetLanguageExpression());
- assertConvertable(new SetValueExpression(new IntegerFieldValue(69)));
+ assertConvertable(new ConstantExpression(new IntegerFieldValue(69)));
assertConvertable(new SetVarExpression("foo"));
assertConvertable(new SplitExpression("foo"));
assertConvertable(new StatementExpression(new InputExpression("foo")));
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionOptimizerTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionOptimizerTestCase.java
index f16e170c981..d9cb89d6be5 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionOptimizerTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionOptimizerTestCase.java
@@ -1,15 +1,11 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.indexinglanguage;
-import com.yahoo.document.datatypes.FieldValue;
import com.yahoo.document.datatypes.IntegerFieldValue;
import com.yahoo.vespa.indexinglanguage.expressions.*;
import com.yahoo.vespa.indexinglanguage.parser.ParseException;
import org.junit.Test;
-import java.util.HashMap;
-import java.util.Map;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
@@ -26,7 +22,7 @@ public class ExpressionOptimizerTestCase {
public void requireThatStatementsBeforeOneThatIgnoresInputAreRemoved() {
checkStatementThatIgnoresInput(new InputExpression("foo"));
checkStatementThatIgnoresInput(new NowExpression());
- checkStatementThatIgnoresInput(new SetValueExpression(new IntegerFieldValue(42)));
+ checkStatementThatIgnoresInput(new ConstantExpression(new IntegerFieldValue(42)));
checkStatementThatIgnoresInput(new HostNameExpression());
checkStatementThatIgnoresInput(new RandomExpression(42));
checkStatementThatIgnoresInput(new ArithmeticExpression(
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitorTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitorTestCase.java
index 8683874d44d..84e5c730fa6 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitorTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitorTestCase.java
@@ -3,7 +3,6 @@ package com.yahoo.vespa.indexinglanguage;
import com.yahoo.collections.Pair;
import com.yahoo.document.datatypes.IntegerFieldValue;
-import com.yahoo.language.Linguistics;
import com.yahoo.language.simple.SimpleLinguistics;
import com.yahoo.vespa.indexinglanguage.expressions.ArithmeticExpression;
import com.yahoo.vespa.indexinglanguage.expressions.AttributeExpression;
@@ -11,6 +10,7 @@ import com.yahoo.vespa.indexinglanguage.expressions.Base64DecodeExpression;
import com.yahoo.vespa.indexinglanguage.expressions.Base64EncodeExpression;
import com.yahoo.vespa.indexinglanguage.expressions.CatExpression;
import com.yahoo.vespa.indexinglanguage.expressions.ClearStateExpression;
+import com.yahoo.vespa.indexinglanguage.expressions.ConstantExpression;
import com.yahoo.vespa.indexinglanguage.expressions.EchoExpression;
import com.yahoo.vespa.indexinglanguage.expressions.Expression;
import com.yahoo.vespa.indexinglanguage.expressions.ForEachExpression;
@@ -33,7 +33,6 @@ import com.yahoo.vespa.indexinglanguage.expressions.RandomExpression;
import com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression;
import com.yahoo.vespa.indexinglanguage.expressions.SelectInputExpression;
import com.yahoo.vespa.indexinglanguage.expressions.SetLanguageExpression;
-import com.yahoo.vespa.indexinglanguage.expressions.SetValueExpression;
import com.yahoo.vespa.indexinglanguage.expressions.SetVarExpression;
import com.yahoo.vespa.indexinglanguage.expressions.SplitExpression;
import com.yahoo.vespa.indexinglanguage.expressions.StatementExpression;
@@ -100,7 +99,7 @@ public class ExpressionVisitorTestCase {
assertCount(3, new SelectInputExpression(new Pair<String, Expression>("foo", new IndexExpression("bar")),
new Pair<String, Expression>("bar", new IndexExpression("foo"))));
assertCount(1, new SetLanguageExpression());
- assertCount(1, new SetValueExpression(new IntegerFieldValue(69)));
+ assertCount(1, new ConstantExpression(new IntegerFieldValue(69)));
assertCount(1, new SetVarExpression("foo"));
assertCount(1, new SplitExpression("foo"));
assertCount(2, new StatementExpression(new InputExpression("foo")));
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java
index 98458dd965c..77b38dd7549 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ScriptTestCase.java
@@ -69,7 +69,7 @@ public class ScriptTestCase {
fail();
} catch (VerificationException e) {
assertEquals(e.getExpressionType(), ScriptExpression.class);
- assertEquals("Expected any input, got null.", e.getMessage());
+ assertEquals("Expected any input, but no input is specified", e.getMessage());
}
}
@@ -85,7 +85,7 @@ public class ScriptTestCase {
}
@Test
- public void requireThatIfExpressionPassesOriginalInputAlong() throws ParseException {
+ public void requireThatIfExpressionReturnsTheProducedType() throws ParseException {
Document input = new Document(type, "id:scheme:mytype::");
Document output = Expression.execute(Expression.fromString("'foo' | if (1 < 2) { 'bar' | index 'out-1' } else { 'baz' | index 'out-1' } | index 'out-1'"), input);
assertNotNull(output);
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/SimpleDocumentAdapterTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/SimpleDocumentAdapterTestCase.java
index 76f96a80bb9..5a85d8ef5c3 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/SimpleDocumentAdapterTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/SimpleDocumentAdapterTestCase.java
@@ -48,7 +48,7 @@ public class SimpleDocumentAdapterTestCase {
adapter.getInputType(null, "foo");
fail();
} catch (VerificationException e) {
- assertEquals("Input field 'foo' not found.", e.getMessage());
+ assertEquals("Input field 'foo' not found", e.getMessage());
}
assertNull(adapter.getInputValue("foo"));
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ValueTransformProviderTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ValueTransformProviderTestCase.java
index d0e9356ee76..f7eeca6f70a 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ValueTransformProviderTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/ValueTransformProviderTestCase.java
@@ -111,14 +111,14 @@ public class ValueTransformProviderTestCase {
@Test
public void requireThatSelectInputBranchesAreManagedSeparately() {
- List<Pair<String, Expression>> before = new LinkedList<Pair<String, Expression>>();
- before.add(new Pair<String, Expression>("a", new IndexExpression("b")));
- before.add(new Pair<String, Expression>("c", new IndexExpression("d")));
+ List<Pair<String, Expression>> before = new LinkedList<>();
+ before.add(new Pair<>("a", new IndexExpression("b")));
+ before.add(new Pair<>("c", new IndexExpression("d")));
- List<Pair<String, Expression>> after = new LinkedList<Pair<String, Expression>>();
- after.add(new Pair<String, Expression>("a", new StatementExpression(new LowerCaseExpression(),
+ List<Pair<String, Expression>> after = new LinkedList<>();
+ after.add(new Pair<>("a", new StatementExpression(new LowerCaseExpression(),
new IndexExpression("b"))));
- after.add(new Pair<String, Expression>("c", new StatementExpression(new LowerCaseExpression(),
+ after.add(new Pair<>("c", new StatementExpression(new LowerCaseExpression(),
new IndexExpression("d"))));
assertProvided(new StatementExpression(new SelectInputExpression(before),
@@ -130,11 +130,11 @@ public class ValueTransformProviderTestCase {
@Test
public void requireThatSwitchBranchesAreManagedSeparately() {
- Map<String, Expression> before = new LinkedHashMap<String, Expression>();
+ Map<String, Expression> before = new LinkedHashMap<>();
before.put("a", new IndexExpression("b"));
before.put("c", new IndexExpression("d"));
- Map<String, Expression> after = new LinkedHashMap<String, Expression>();
+ Map<String, Expression> after = new LinkedHashMap<>();
after.put("a", new StatementExpression(new LowerCaseExpression(),
new IndexExpression("b")));
after.put("c", new StatementExpression(new LowerCaseExpression(),
@@ -170,4 +170,5 @@ public class ValueTransformProviderTestCase {
return new LowerCaseExpression();
}
}
+
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ArithmeticTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ArithmeticTestCase.java
index 91d8f833701..f6dc7f839ed 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ArithmeticTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ArithmeticTestCase.java
@@ -64,13 +64,13 @@ public class ArithmeticTestCase {
SimpleExpression.newOutput(DataType.INT), null);
assertVerifyThrows(SimpleExpression.newOutput(null), Operator.ADD,
SimpleExpression.newOutput(DataType.INT), null,
- "Attempting to perform arithmetic on a null value.");
+ "Attempting to perform arithmetic on a null value");
assertVerifyThrows(SimpleExpression.newOutput(DataType.INT), Operator.ADD,
SimpleExpression.newOutput(null), null,
- "Attempting to perform arithmetic on a null value.");
+ "Attempting to perform arithmetic on a null value");
assertVerifyThrows(SimpleExpression.newOutput(null), Operator.ADD,
SimpleExpression.newOutput(null), null,
- "Attempting to perform arithmetic on a null value.");
+ "Attempting to perform arithmetic on a null value");
assertVerifyThrows(SimpleExpression.newOutput(DataType.INT), Operator.ADD,
SimpleExpression.newOutput(DataType.STRING), null,
"Attempting to perform unsupported arithmetic: [int] + [string]");
@@ -95,7 +95,7 @@ public class ArithmeticTestCase {
new SimpleExpression(DataType.INT), DataType.INT);
assertVerifyThrows(new SimpleExpression(DataType.INT), Operator.ADD,
new SimpleExpression(DataType.STRING), null,
- "Operands require conflicting input types, int vs string.");
+ "Operands require conflicting input types, int vs string");
}
@Test
@@ -114,23 +114,23 @@ public class ArithmeticTestCase {
@Test
public void requireThatArithmeticWithNullEvaluatesToNull() {
assertNull(newArithmetic(new SimpleExpression(), Operator.ADD,
- new SetValueExpression(new LongFieldValue(69))).execute());
- assertNull(newArithmetic(new SetValueExpression(new LongFieldValue(69)), Operator.ADD,
+ new ConstantExpression(new LongFieldValue(69))).execute());
+ assertNull(newArithmetic(new ConstantExpression(new LongFieldValue(69)), Operator.ADD,
new SimpleExpression()).execute());
}
@Test
public void requireThatNonNumericOperandThrows() {
try {
- newArithmetic(new SetValueExpression(new IntegerFieldValue(6)), Operator.ADD,
- new SetValueExpression(new StringFieldValue("9"))).execute();
+ newArithmetic(new ConstantExpression(new IntegerFieldValue(6)), Operator.ADD,
+ new ConstantExpression(new StringFieldValue("9"))).execute();
fail();
} catch (IllegalArgumentException e) {
assertEquals("Unsupported operation: [int] + [string]", e.getMessage());
}
try {
- newArithmetic(new SetValueExpression(new StringFieldValue("6")), Operator.ADD,
- new SetValueExpression(new IntegerFieldValue(9))).execute();
+ newArithmetic(new ConstantExpression(new StringFieldValue("6")), Operator.ADD,
+ new ConstantExpression(new IntegerFieldValue(9))).execute();
fail();
} catch (IllegalArgumentException e) {
assertEquals("Unsupported operation: [string] + [int]", e.getMessage());
@@ -156,8 +156,8 @@ public class ArithmeticTestCase {
}
private void assertResult(FieldValue lhs, Operator op, FieldValue rhs, FieldValue expected) {
- assertEquals(expected, evaluate(new SetValueExpression(lhs), op,
- new SetValueExpression(rhs)));
+ assertEquals(expected, evaluate(new ConstantExpression(lhs), op,
+ new ConstantExpression(rhs)));
}
private void assertType(DataType lhs, Operator op, DataType rhs, DataType expected) {
@@ -178,15 +178,15 @@ public class ArithmeticTestCase {
}
private static ArithmeticExpression newArithmetic(FieldValue lhs, Operator op, FieldValue rhs) {
- return newArithmetic(new SetValueExpression(lhs), op, new SetValueExpression(rhs));
+ return newArithmetic(new ConstantExpression(lhs), op, new ConstantExpression(rhs));
}
private static ArithmeticExpression newArithmetic(Expression lhs, Operator op, Expression rhs) {
return new ArithmeticExpression(lhs, op, rhs);
}
- private static SetValueExpression newLong(long val) {
- return new SetValueExpression(new LongFieldValue(val));
+ private static ConstantExpression newLong(long val) {
+ return new ConstantExpression(new LongFieldValue(val));
}
private static void assertVerify(Expression lhs, Operator op, Expression rhs, DataType val) {
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeTestCase.java
index fee467b4c2c..eec95aa6644 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64DecodeTestCase.java
@@ -48,7 +48,7 @@ public class Base64DecodeTestCase {
new Base64DecodeExpression().execute(new StringFieldValue("abcdefghijlkm"));
fail();
} catch (IllegalArgumentException e) {
- assertEquals("Base64 value 'abcdefghijlkm' is out of range.", e.getMessage());
+ assertEquals("Base64 value 'abcdefghijlkm' is out of range", e.getMessage());
}
}
@@ -66,7 +66,7 @@ public class Base64DecodeTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new Base64DecodeExpression();
assertVerify(DataType.STRING, exp, DataType.LONG);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.LONG, exp, "Expected string input, got long.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.LONG, exp, "Expected string input, got long");
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64EncodeTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64EncodeTestCase.java
index 50c8d540e81..d82044c6c80 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64EncodeTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/Base64EncodeTestCase.java
@@ -40,7 +40,7 @@ public class Base64EncodeTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new Base64EncodeExpression();
assertVerify(DataType.LONG, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected long input, got null.");
- assertVerifyThrows(DataType.STRING, exp, "Expected long input, got string.");
+ assertVerifyThrows(null, exp, "Expected long input, but no input is specified");
+ assertVerifyThrows(DataType.STRING, exp, "Expected long input, got string");
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/CatTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/CatTestCase.java
index 09341a6f9ba..d4f97c62e7d 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/CatTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/CatTestCase.java
@@ -44,22 +44,22 @@ public class CatTestCase {
@Test
public void requireThatExpressionCanBeVerified() {
- assertVerify(new SetValueExpression(new StringFieldValue("foo")),
- new SetValueExpression(new StringFieldValue("bar")), null);
+ assertVerify(new ConstantExpression(new StringFieldValue("foo")),
+ new ConstantExpression(new StringFieldValue("bar")), null);
assertVerify(new SimpleExpression(DataType.STRING),
new SimpleExpression(DataType.STRING), DataType.STRING);
assertVerifyThrows(new SimpleExpression().setCreatedOutput(null),
new SimpleExpression().setCreatedOutput(DataType.STRING), null,
- "Attempting to concatenate a null value ");
+ "Attempting to concatenate a null value");
assertVerifyThrows(new SimpleExpression(DataType.STRING),
new SimpleExpression(DataType.INT), null,
- "Operands require conflicting input types, string vs int.");
+ "Operands require conflicting input types, string vs int");
assertVerifyThrows(new SimpleExpression(DataType.STRING),
new SimpleExpression(DataType.STRING), null,
- "Expected string input, got null.");
+ "Expected string input, but no input is specified");
assertVerifyThrows(new SimpleExpression(DataType.STRING),
new SimpleExpression(DataType.STRING), DataType.INT,
- "Expected string input, got int.");
+ "Expected string input, got int");
}
@Test
@@ -89,16 +89,16 @@ public class CatTestCase {
@Test
public void requireThatInputValueIsAvailableToAllInnerExpressions() {
assertEquals(new StringFieldValue("foobarfoo"),
- new StatementExpression(new SetValueExpression(new StringFieldValue("foo")),
+ new StatementExpression(new ConstantExpression(new StringFieldValue("foo")),
new CatExpression(new ThisExpression(),
- new SetValueExpression(new StringFieldValue("bar")),
+ new ConstantExpression(new StringFieldValue("bar")),
new ThisExpression())).execute());
}
@Test
public void requiredThatRequiredInputTypeAllowsNull() {
- assertVerify(new SetValueExpression(new StringFieldValue("foo")), new TrimExpression(), DataType.STRING);
- assertVerify(new TrimExpression(), new SetValueExpression(new StringFieldValue("foo")), DataType.STRING);
+ assertVerify(new ConstantExpression(new StringFieldValue("foo")), new TrimExpression(), DataType.STRING);
+ assertVerify(new TrimExpression(), new ConstantExpression(new StringFieldValue("foo")), DataType.STRING);
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/CompositeExpressionTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/CompositeExpressionTestCase.java
index 6ad01e1e9bf..3d2230bb524 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/CompositeExpressionTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/CompositeExpressionTestCase.java
@@ -15,7 +15,7 @@ public class CompositeExpressionTestCase {
@Test
public void requireThatToScriptBlockOutputIsParsable() throws ParseException {
- Expression exp = new SetValueExpression(new IntegerFieldValue(69));
+ Expression exp = new ConstantExpression(new IntegerFieldValue(69));
assertScript("{ 69; }", exp);
assertScript("{ 69; }", new StatementExpression(exp));
assertScript("{ 69; }", new ScriptExpression(new StatementExpression(exp)));
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/EchoTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/EchoTestCase.java
index 29a0cd1617d..4dd5ef4d9f9 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/EchoTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/EchoTestCase.java
@@ -53,6 +53,6 @@ public class EchoTestCase {
Expression exp = new EchoExpression();
assertVerify(DataType.INT, exp, DataType.INT);
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExactTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExactTestCase.java
index e993f6cbdee..d1d62442857 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExactTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExactTestCase.java
@@ -75,8 +75,8 @@ public class ExactTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new ExactExpression();
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
private static void assertAnnotation(int expectedFrom, int expectedLen, StringFieldValue expectedVal,
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExpressionTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExpressionTestCase.java
index d3ff552ab10..e42ab5a60d5 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExpressionTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExpressionTestCase.java
@@ -34,22 +34,22 @@ public class ExpressionTestCase {
public void requireThatInputTypeIsCheckedBeforeVerify() {
assertVerify(newRequiredInput(DataType.INT), DataType.INT);
assertVerifyThrows(newRequiredInput(DataType.INT), null,
- "Expected int input, got null.");
+ "Expected int input, but no input is specified");
assertVerifyThrows(newRequiredInput(DataType.INT), UnresolvedDataType.INSTANCE,
- "Failed to resolve input type.");
+ "Failed to resolve input type");
assertVerifyThrows(newRequiredInput(DataType.INT), DataType.STRING,
- "Expected int input, got string.");
+ "Expected int input, got string");
}
@Test
public void requireThatOutputTypeIsCheckedAfterVerify() {
assertVerify(newCreatedOutput(DataType.INT, DataType.INT), null);
assertVerifyThrows(newCreatedOutput(DataType.INT, (DataType)null), null,
- "Expected int output, got null.");
+ "Expected int output, but no output is specified");
assertVerifyThrows(newCreatedOutput(DataType.INT, UnresolvedDataType.INSTANCE), null,
- "Failed to resolve output type.");
+ "Failed to resolve output type");
assertVerifyThrows(newCreatedOutput(DataType.INT, DataType.STRING), null,
- "Expected int output, got string.");
+ "Expected int output, got string");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/FlattenTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/FlattenTestCase.java
index ec0af3ba5f2..b875abb923b 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/FlattenTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/FlattenTestCase.java
@@ -87,7 +87,7 @@ public class FlattenTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new FlattenExpression();
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachTestCase.java
index 356910a299a..04a682aa82a 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachTestCase.java
@@ -53,9 +53,9 @@ public class ForEachTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new ForEachExpression(SimpleExpression.newConversion(DataType.INT, DataType.STRING));
assertVerify(DataType.getArray(DataType.INT), exp, DataType.getArray(DataType.STRING));
- assertVerifyThrows(null, exp, "Expected any input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected Array, Struct or WeightedSet input, got int.");
- assertVerifyThrows(DataType.getArray(DataType.STRING), exp, "Expected int input, got string.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected Array, Struct or WeightedSet input, got int");
+ assertVerifyThrows(DataType.getArray(DataType.STRING), exp, "Expected int input, got string");
}
@Test
@@ -64,9 +64,9 @@ public class ForEachTestCase {
type.addField(new Field("foo", DataType.INT));
assertVerify(type, new ForEachExpression(new SimpleExpression()), type);
assertVerifyThrows(type, new ForEachExpression(SimpleExpression.newConversion(DataType.STRING, DataType.INT)),
- "Expected string input, got int.");
+ "Expected string input, got int");
assertVerifyThrows(type, new ForEachExpression(SimpleExpression.newConversion(DataType.INT, DataType.STRING)),
- "Expected int output, got string.");
+ "Expected int output, got string");
}
@Test
@@ -94,7 +94,7 @@ public class ForEachTestCase {
@Test
public void requireThatCreatedOutputTypeDependsOnInnerExpression() {
assertNull(new ForEachExpression(new SimpleExpression()).createdOutputType());
- assertNotNull(new ForEachExpression(new SetValueExpression(new IntegerFieldValue(69))).createdOutputType());
+ assertNotNull(new ForEachExpression(new ConstantExpression(new IntegerFieldValue(69))).createdOutputType());
}
@Test
@@ -134,7 +134,7 @@ public class ForEachTestCase {
new ForEachExpression(new SimpleExpression()).execute(new StringFieldValue("foo"));
fail();
} catch (IllegalArgumentException e) {
- assertEquals("Expected Array, Struct or WeightedSet input, got string.", e.getMessage());
+ assertEquals("Expected Array, Struct or WeightedSet input, got string", e.getMessage());
}
}
@@ -215,7 +215,7 @@ public class ForEachTestCase {
new ForEachExpression(new ToArrayExpression()).verify(ctx);
fail();
} catch (VerificationException e) {
- assertEquals("Expected int output, got Array<int>.", e.getMessage());
+ assertEquals("Expected int output, got Array<int>", e.getMessage());
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldTestCase.java
index 9fbb95c0def..5da7a3544dc 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldTestCase.java
@@ -38,8 +38,8 @@ public class GetFieldTestCase {
type.addField(new Field("foo", DataType.STRING));
Expression exp = new GetFieldExpression("foo");
assertVerify(type, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected structured input, got int.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected structured input, got int");
assertVerifyThrows(type, new GetFieldExpression("bar"), "Field 'bar' not found in struct type 'my_struct'");
}
@@ -69,7 +69,7 @@ public class GetFieldTestCase {
new GetFieldExpression("foo").execute(new StringFieldValue("bar"));
fail();
} catch (IllegalArgumentException e) {
- assertEquals("Expected structured input, got string.", e.getMessage());
+ assertEquals("Expected structured input, got string", e.getMessage());
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarTestCase.java
index 30ee50fccc8..daa02edcaa2 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarTestCase.java
@@ -41,7 +41,7 @@ public class GetVarTestCase {
new GetVarExpression("bar").verify(ctx);
fail();
} catch (VerificationException e) {
- assertEquals("Variable 'bar' not found.", e.getMessage());
+ assertEquals("Variable 'bar' not found", e.getMessage());
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GuardTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GuardTestCase.java
index 092ca6b5f59..b0fa561a62e 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GuardTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GuardTestCase.java
@@ -46,8 +46,8 @@ public class GuardTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new GuardExpression(SimpleExpression.newConversion(DataType.INT, DataType.STRING));
assertVerify(DataType.INT, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected int input, got null.");
- assertVerifyThrows(DataType.STRING, exp, "Expected int input, got string.");
+ assertVerifyThrows(null, exp, "Expected int input, but no input is specified");
+ assertVerifyThrows(DataType.STRING, exp, "Expected int input, got string");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/HexDecodeTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/HexDecodeTestCase.java
index b92d7988df2..c42cfec5847 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/HexDecodeTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/HexDecodeTestCase.java
@@ -29,8 +29,8 @@ public class HexDecodeTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new HexDecodeExpression();
assertVerify(DataType.STRING, exp, DataType.LONG);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.LONG, exp, "Expected string input, got long.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.LONG, exp, "Expected string input, got long");
}
@Test
@@ -67,7 +67,7 @@ public class HexDecodeTestCase {
new HexDecodeExpression().execute(new StringFieldValue("1ffffffffffffffff"));
fail();
} catch (IllegalArgumentException e) {
- assertEquals("Hex value '1ffffffffffffffff' is out of range.", e.getMessage());
+ assertEquals("Hex value '1ffffffffffffffff' is out of range", e.getMessage());
}
}
@@ -77,7 +77,7 @@ public class HexDecodeTestCase {
new HexDecodeExpression().execute(new StringFieldValue("???"));
fail();
} catch (IllegalArgumentException e) {
- assertEquals("Illegal hex value '???'.", e.getMessage());
+ assertEquals("Illegal hex value '???'", e.getMessage());
}
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/HexEncodeTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/HexEncodeTestCase.java
index 14745e5d61d..23c55327ed6 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/HexEncodeTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/HexEncodeTestCase.java
@@ -29,8 +29,8 @@ public class HexEncodeTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new HexEncodeExpression();
assertVerify(DataType.LONG, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected long input, got null.");
- assertVerifyThrows(DataType.STRING, exp, "Expected long input, got string.");
+ assertVerifyThrows(null, exp, "Expected long input, but no input is specified");
+ assertVerifyThrows(DataType.STRING, exp, "Expected long input, got string");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/IfThenTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/IfThenTestCase.java
index d429d340480..6c8980c8c1d 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/IfThenTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/IfThenTestCase.java
@@ -42,29 +42,29 @@ public class IfThenTestCase {
Expression exp = newRequiredInput(DataType.STRING, Comparator.EQ, DataType.STRING,
DataType.STRING, DataType.STRING);
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
assertVerifyThrows(null, () -> newRequiredInput(DataType.INT, Comparator.EQ, DataType.STRING,
DataType.STRING, DataType.STRING),
- "Operands require conflicting input types, int vs string.");
+ "Operands require conflicting input types, int vs string");
assertVerifyThrows(null, () -> newRequiredInput(DataType.STRING, Comparator.EQ, DataType.INT,
DataType.STRING, DataType.STRING),
- "Operands require conflicting input types, string vs int.");
+ "Operands require conflicting input types, string vs int");
assertVerifyThrows(null, () -> newRequiredInput(DataType.STRING, Comparator.EQ, DataType.STRING,
DataType.INT, DataType.STRING),
- "Operands require conflicting input types, string vs int.");
+ "Operands require conflicting input types, string vs int");
assertVerifyThrows(null, () -> newRequiredInput(DataType.STRING, Comparator.EQ, DataType.STRING,
DataType.STRING, DataType.INT),
- "Operands require conflicting input types, string vs int.");
+ "Operands require conflicting input types, string vs int");
}
@Test
public void requireThatExpressionCanBeVerified() {
assertVerify(DataType.STRING, new FlattenExpression(), DataType.STRING);
assertVerifyThrows(null, new FlattenExpression(),
- "Expected string input, got null.");
+ "Expected string input, but no input is specified");
assertVerifyThrows(DataType.INT, new FlattenExpression(),
- "Expected string input, got int.");
+ "Expected string input, got int");
}
@Test
@@ -116,7 +116,7 @@ public class IfThenTestCase {
@Test
public void requireThatAllChildrenSeeInputValue() {
FieldValueAdapter adapter = createTestAdapter();
- new StatementExpression(new SetValueExpression(new IntegerFieldValue(69)),
+ new StatementExpression(new ConstantExpression(new IntegerFieldValue(69)),
new IfThenExpression(new AttributeExpression("lhs"),
Comparator.EQ,
new AttributeExpression("rhs"),
@@ -128,7 +128,7 @@ public class IfThenTestCase {
assertNull(null, adapter.getInputValue("ifFalse"));
adapter = createTestAdapter();
- new StatementExpression(new SetValueExpression(new IntegerFieldValue(69)),
+ new StatementExpression(new ConstantExpression(new IntegerFieldValue(69)),
new IfThenExpression(new AttributeExpression("lhs"),
Comparator.NE,
new AttributeExpression("rhs"),
@@ -143,10 +143,10 @@ public class IfThenTestCase {
@Test
public void requireThatElseExpIsOptional() {
ExecutionContext ctx = new ExecutionContext();
- Expression exp = new IfThenExpression(new SetValueExpression(new IntegerFieldValue(6)),
+ Expression exp = new IfThenExpression(new ConstantExpression(new IntegerFieldValue(6)),
Comparator.GT,
- new SetValueExpression(new IntegerFieldValue(9)),
- new SetValueExpression(new StringFieldValue("69")));
+ new ConstantExpression(new IntegerFieldValue(9)),
+ new ConstantExpression(new StringFieldValue("69")));
FieldValue val = ctx.setValue(new IntegerFieldValue(96)).execute(exp).getValue();
assertTrue(val instanceof IntegerFieldValue);
assertEquals(96, ((IntegerFieldValue)val).getInteger());
@@ -225,8 +225,8 @@ public class IfThenTestCase {
@Test
public void requireThatNullLeftOrRightHandSideEvaluatesToNull() {
Expression exp = new IfThenExpression(new GetVarExpression("lhs"), Comparator.EQ, new GetVarExpression("rhs"),
- new SetValueExpression(new StringFieldValue("true")),
- new SetValueExpression(new StringFieldValue("false")));
+ new ConstantExpression(new StringFieldValue("true")),
+ new ConstantExpression(new StringFieldValue("false")));
assertEquals(new StringFieldValue("true"),
exp.execute(new ExecutionContext().setVariable("lhs", new IntegerFieldValue(69))
.setVariable("rhs", new IntegerFieldValue(69))));
@@ -237,6 +237,25 @@ public class IfThenTestCase {
assertNull(exp.execute(new ExecutionContext().setVariable("rhs", new IntegerFieldValue(69))));
}
+ @Test
+ public void testRequiredInputType() {
+ var ifExpression = new IfThenExpression(new InputExpression("field1"),
+ Comparator.EQ,
+ new ConstantExpression(new IntegerFieldValue(0)),
+ wrapLikeTheParser(new ConstantExpression(new StringFieldValue("true"))),
+ wrapLikeTheParser(new ConstantExpression(new StringFieldValue("false"))));
+ assertNull(ifExpression.requiredInputType());
+ assertEquals(DataType.STRING, ifExpression.createdOutputType());
+
+ var expression = new ScriptExpression(new StatementExpression(ifExpression,
+ new AttributeExpression(null)));
+ assertNull(expression.requiredInputType());
+ }
+
+ private Expression wrapLikeTheParser(Expression expression) {
+ return new ScriptExpression(new StatementExpression(expression));
+ }
+
private static void assertCmpTrue(FieldValue lhs, Comparator cmp, FieldValue rhs) {
assertTrue(evaluateIfThen(lhs, cmp, rhs));
}
@@ -248,8 +267,8 @@ public class IfThenTestCase {
private static boolean evaluateIfThen(FieldValue lhs, Comparator cmp, FieldValue rhs) {
ExecutionContext ctx = new ExecutionContext(new SimpleTestAdapter());
new StatementExpression(
- new SetValueExpression(new IntegerFieldValue(1)),
- new IfThenExpression(new SetValueExpression(lhs), cmp, new SetValueExpression(rhs),
+ new ConstantExpression(new IntegerFieldValue(1)),
+ new IfThenExpression(new ConstantExpression(lhs), cmp, new ConstantExpression(rhs),
new SetVarExpression("true"),
new SetVarExpression("false"))).execute(ctx);
return ctx.getVariable("true") != null;
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/InputTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/InputTestCase.java
index fe16e8d10ab..0cfbb23bd1b 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/InputTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/InputTestCase.java
@@ -40,7 +40,7 @@ public class InputTestCase {
new InputExpression("bar").verify(adapter);
fail();
} catch (VerificationException e) {
- assertEquals("Field 'bar' not found.", e.getMessage());
+ assertEquals("Field 'bar' not found", e.getMessage());
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/JoinTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/JoinTestCase.java
index a1eb46afd33..b4c94166c2d 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/JoinTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/JoinTestCase.java
@@ -36,8 +36,8 @@ public class JoinTestCase {
Expression exp = new JoinExpression(";");
assertVerify(DataType.getArray(DataType.INT), exp, DataType.STRING);
assertVerify(DataType.getArray(DataType.STRING), exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected Array input, got int.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected Array input, got int");
}
@Test
@@ -58,7 +58,7 @@ public class JoinTestCase {
new JoinExpression(";").execute(new StringFieldValue("foo"));
fail();
} catch (IllegalArgumentException e) {
- assertEquals("Expected Array input, got string.", e.getMessage());
+ assertEquals("Expected Array input, got string", e.getMessage());
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/LowerCaseTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/LowerCaseTestCase.java
index ce2251d1884..f1d68f6438a 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/LowerCaseTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/LowerCaseTestCase.java
@@ -28,8 +28,8 @@ public class LowerCaseTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new LowerCaseExpression();
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/MathResolverTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/MathResolverTestCase.java
index 1f9afdea44d..0bcbcb2b1b3 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/MathResolverTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/MathResolverTestCase.java
@@ -93,7 +93,7 @@ public class MathResolverTestCase {
// --------------------------------------------------------------------------------
private static Expression newInteger(int val) {
- return new SetValueExpression(new IntegerFieldValue(val));
+ return new ConstantExpression(new IntegerFieldValue(val));
}
private static int evaluate(Expression exp) {
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/NGramTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/NGramTestCase.java
index 4d4f11416cb..ae52ad83e8c 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/NGramTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/NGramTestCase.java
@@ -46,8 +46,8 @@ public class NGramTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new NGramExpression(new SimpleLinguistics(), 69);
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/NormalizeTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/NormalizeTestCase.java
index f00ad6a95aa..9584bfa1438 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/NormalizeTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/NormalizeTestCase.java
@@ -43,8 +43,8 @@ public class NormalizeTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new NormalizeExpression(new SimpleLinguistics());
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/OptimizePredicateTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/OptimizePredicateTestCase.java
index 28dc12781f0..685416c905a 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/OptimizePredicateTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/OptimizePredicateTestCase.java
@@ -76,21 +76,21 @@ public class OptimizePredicateTestCase {
@Test
public void requireThatExpressionCanBeVerified() {
Expression exp = new OptimizePredicateExpression();
- assertVerifyThrows(null, exp, "Expected predicate input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected predicate input, got int.");
- assertVerifyThrows(DataType.PREDICATE, exp, "Variable 'arity' must be set.");
+ assertVerifyThrows(null, exp, "Expected predicate input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected predicate input, got int");
+ assertVerifyThrows(DataType.PREDICATE, exp, "Variable 'arity' must be set");
VerificationContext context = new VerificationContext().setValueType(DataType.PREDICATE);
context.setVariable("arity", DataType.STRING);
- assertVerifyCtxThrows(context, exp, "Variable 'arity' must have type int.");
+ assertVerifyCtxThrows(context, exp, "Variable 'arity' must have type int");
context.setVariable("arity", DataType.INT);
assertVerifyCtx(context, exp, DataType.PREDICATE);
context.setVariable("lower_bound", DataType.INT);
- assertVerifyCtxThrows(context, exp, "Variable 'lower_bound' must have type long.");
+ assertVerifyCtxThrows(context, exp, "Variable 'lower_bound' must have type long");
context.setVariable("lower_bound", DataType.LONG);
assertVerifyCtx(context, exp, DataType.PREDICATE);
context.setVariable("upper_bound", DataType.INT);
- assertVerifyCtxThrows(context, exp, "Variable 'upper_bound' must have type long.");
+ assertVerifyCtxThrows(context, exp, "Variable 'upper_bound' must have type long");
context.setVariable("upper_bound", DataType.LONG);
assertVerifyCtx(context, exp, DataType.PREDICATE);
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/OutputAssert.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/OutputAssert.java
index 26bc531f806..10dab2061e7 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/OutputAssert.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/OutputAssert.java
@@ -27,7 +27,7 @@ class OutputAssert {
public static void assertVerify(OutputExpression exp) {
assertVerify(new MyAdapter(null), DataType.INT, exp);
assertVerify(new MyAdapter(null), DataType.STRING, exp);
- assertVerifyThrows(new MyAdapter(null), null, exp, "Expected any input, got null.");
+ assertVerifyThrows(new MyAdapter(null), null, exp, "Expected any input, but no input is specified");
assertVerifyThrows(new MyAdapter(new VerificationException((Expression) null, "foo")), DataType.INT, exp, "foo");
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ParenthesisTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ParenthesisTestCase.java
index 9f3a220249b..5ca3e336f69 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ParenthesisTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ParenthesisTestCase.java
@@ -37,8 +37,8 @@ public class ParenthesisTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new ParenthesisExpression(SimpleExpression.newConversion(DataType.INT, DataType.STRING));
assertVerify(DataType.INT, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected int input, got null.");
- assertVerifyThrows(DataType.STRING, exp, "Expected int input, got string.");
+ assertVerifyThrows(null, exp, "Expected int input, but no input is specified");
+ assertVerifyThrows(DataType.STRING, exp, "Expected int input, got string");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptTestCase.java
index c648bb12ede..62b960568e9 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptTestCase.java
@@ -54,20 +54,20 @@ public class ScriptTestCase {
@Test
public void requireThatExpressionCanBeVerified() {
Expression exp = newScript(newStatement(SimpleExpression.newConversion(DataType.INT, DataType.STRING)));
- assertVerify(DataType.INT, exp, DataType.INT); // does not touch output
- assertVerifyThrows(null, exp, "Expected int input, got null.");
- assertVerifyThrows(DataType.STRING, exp, "Expected int input, got string.");
+ assertVerify(DataType.INT, exp, DataType.STRING);
+ assertVerifyThrows(null, exp, "Expected int input, but no input is specified");
+ assertVerifyThrows(DataType.STRING, exp, "Expected int input, got string");
assertVerifyThrows(null, () -> newScript(newStatement(SimpleExpression.newConversion(DataType.INT, DataType.STRING)),
newStatement(SimpleExpression.newConversion(DataType.STRING, DataType.INT))),
- "Statements require conflicting input types, int vs string.");
+ "Statements require conflicting input types, int vs string");
}
@Test
public void requireThatInputValueIsAvailableToAllStatements() {
SimpleTestAdapter adapter = new SimpleTestAdapter(new Field("out-1", DataType.INT),
new Field("out-2", DataType.INT));
- newStatement(new SetValueExpression(new IntegerFieldValue(69)),
+ newStatement(new ConstantExpression(new IntegerFieldValue(69)),
newScript(newStatement(new AttributeExpression("out-1"),
new AttributeExpression("out-2")))).execute(adapter);
assertEquals(new IntegerFieldValue(69), adapter.getInputValue("out-1"));
@@ -90,8 +90,8 @@ public class ScriptTestCase {
@Test
public void requireThatScriptEvaluatesToInputValue() {
SimpleTestAdapter adapter = new SimpleTestAdapter(new Field("out", DataType.INT));
- newStatement(new SetValueExpression(new IntegerFieldValue(6)),
- newScript(newStatement(new SetValueExpression(new IntegerFieldValue(9)))),
+ newStatement(new ConstantExpression(new IntegerFieldValue(6)),
+ newScript(newStatement(new ConstantExpression(new IntegerFieldValue(9)))),
new AttributeExpression("out")).execute(adapter);
assertEquals(new IntegerFieldValue(6), adapter.getInputValue("out"));
}
@@ -99,7 +99,7 @@ public class ScriptTestCase {
@Test
public void requireThatVariablesAreAvailableInScript() {
SimpleTestAdapter adapter = new SimpleTestAdapter(new Field("out", DataType.INT));
- newScript(newStatement(new SetValueExpression(new IntegerFieldValue(69)),
+ newScript(newStatement(new ConstantExpression(new IntegerFieldValue(69)),
new SetVarExpression("tmp")),
newStatement(new GetVarExpression("tmp"),
new AttributeExpression("out"))).execute(adapter);
@@ -109,7 +109,7 @@ public class ScriptTestCase {
@Test
public void requireThatVariablesAreAvailableOutsideScript() {
SimpleTestAdapter adapter = new SimpleTestAdapter(new Field("out", DataType.INT));
- newStatement(newScript(newStatement(new SetValueExpression(new IntegerFieldValue(69)),
+ newStatement(newScript(newStatement(new ConstantExpression(new IntegerFieldValue(69)),
new SetVarExpression("tmp"))),
new GetVarExpression("tmp"),
new AttributeExpression("out")).execute(adapter);
@@ -119,9 +119,9 @@ public class ScriptTestCase {
@Test
public void requireThatVariablesReplaceOthersOutsideScript() {
SimpleTestAdapter adapter = new SimpleTestAdapter(new Field("out", DataType.INT));
- newStatement(new SetValueExpression(new IntegerFieldValue(6)),
+ newStatement(new ConstantExpression(new IntegerFieldValue(6)),
new SetVarExpression("tmp"),
- newScript(newStatement(new SetValueExpression(new IntegerFieldValue(9)),
+ newScript(newStatement(new ConstantExpression(new IntegerFieldValue(9)),
new SetVarExpression("tmp"))),
new GetVarExpression("tmp"),
new AttributeExpression("out")).execute(adapter);
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SelectInputTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SelectInputTestCase.java
index 46605cc5f6a..f4d26bee9f1 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SelectInputTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SelectInputTestCase.java
@@ -61,16 +61,16 @@ public class SelectInputTestCase {
assertVerifyThrows(adapter, newSelectInput(new AttributeExpression("my_int"), "my_str"),
"Can not assign string to field 'my_int' which is int.");
assertVerifyThrows(adapter, newSelectInput(new AttributeExpression("my_int"), "my_unknown"),
- "Field 'my_unknown' not found.");
+ "Field 'my_unknown' not found");
}
@Test
public void requireThatSelectedExpressionIsRun() {
- assertSelect(Arrays.asList("foo", "bar"), Arrays.asList("foo"), "foo");
- assertSelect(Arrays.asList("foo", "bar"), Arrays.asList("bar"), "bar");
- assertSelect(Arrays.asList("foo", "bar"), Arrays.asList("foo", "bar"), "foo");
- assertSelect(Arrays.asList("foo", "bar"), Arrays.asList("bar", "baz"), "bar");
- assertSelect(Arrays.asList("foo", "bar"), Arrays.asList("baz", "cox"), null);
+ assertSelect(Arrays.asList("foo", "bar"), List.of("foo"), "foo");
+ assertSelect(Arrays.asList("foo", "bar"), List.of("bar"), "bar");
+ assertSelect(Arrays.asList("foo", "bar"), List.of("foo", "bar"), "foo");
+ assertSelect(Arrays.asList("foo", "bar"), List.of("bar", "baz"), "bar");
+ assertSelect(Arrays.asList("foo", "bar"), List.of("baz", "cox"), null);
}
private static void assertVerify(FieldTypeAdapter adapter, DataType value, Expression exp) {
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetLanguageTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetLanguageTestCase.java
index 9b95ffc31bb..0821ab0cc40 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetLanguageTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetLanguageTestCase.java
@@ -29,8 +29,8 @@ public class SetLanguageTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new SetLanguageExpression();
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetValueTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetValueTestCase.java
index cace2c5923d..488a8c098fd 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetValueTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetValueTestCase.java
@@ -19,23 +19,23 @@ public class SetValueTestCase {
@Test
public void requireThatAccessorsWork() {
FieldValue foo = new StringFieldValue("foo");
- SetValueExpression exp = new SetValueExpression(foo);
+ ConstantExpression exp = new ConstantExpression(foo);
assertSame(foo, exp.getValue());
}
@Test
public void requireThatHashCodeAndEqualsAreImplemented() {
FieldValue foo = new StringFieldValue("foo");
- Expression exp = new SetValueExpression(foo);
+ Expression exp = new ConstantExpression(foo);
assertFalse(exp.equals(new Object()));
- assertFalse(exp.equals(new SetValueExpression(new StringFieldValue("bar"))));
- assertEquals(exp, new SetValueExpression(foo));
- assertEquals(exp.hashCode(), new SetValueExpression(foo).hashCode());
+ assertFalse(exp.equals(new ConstantExpression(new StringFieldValue("bar"))));
+ assertEquals(exp, new ConstantExpression(foo));
+ assertEquals(exp.hashCode(), new ConstantExpression(foo).hashCode());
}
@Test
public void requireThatExpressionCanBeVerified() {
- Expression exp = new SetValueExpression(new StringFieldValue("foo"));
+ Expression exp = new ConstantExpression(new StringFieldValue("foo"));
assertVerify(null, exp, DataType.STRING);
assertVerify(DataType.INT, exp, DataType.STRING);
assertVerify(DataType.STRING, exp, DataType.STRING);
@@ -44,7 +44,7 @@ public class SetValueTestCase {
@Test
public void requireThatNullValueThrowsException() {
try {
- new SetValueExpression(null);
+ new ConstantExpression(null);
fail();
} catch (NullPointerException e) {
@@ -54,12 +54,12 @@ public class SetValueTestCase {
@Test
public void requireThatValueIsSet() {
ExecutionContext ctx = new ExecutionContext(new SimpleTestAdapter());
- new SetValueExpression(new StringFieldValue("69")).execute(ctx);
+ new ConstantExpression(new StringFieldValue("69")).execute(ctx);
assertEquals(new StringFieldValue("69"), ctx.getValue());
}
@Test
public void requireThatLongFieldValueGetsATrailingL() {
- assertEquals("69L", new SetValueExpression(new LongFieldValue(69)).toString());
+ assertEquals("69L", new ConstantExpression(new LongFieldValue(69)).toString());
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetVarTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetVarTestCase.java
index 0cae20af29d..ae393837dfe 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetVarTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SetVarTestCase.java
@@ -36,13 +36,13 @@ public class SetVarTestCase {
Expression exp = new SetVarExpression("foo");
assertVerify(DataType.INT, exp, DataType.INT);
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
try {
new VerificationContext().setVariable("foo", DataType.INT).setValueType(DataType.STRING).execute(exp);
fail();
} catch (VerificationException e) {
- assertEquals("Attempting to assign conflicting types to variable 'foo', int vs string.", e.getMessage());
+ assertEquals("Attempting to assign conflicting types to variable 'foo', int vs string", e.getMessage());
}
}
@@ -69,7 +69,7 @@ public class SetVarTestCase {
fail();
} catch (VerificationException e) {
assertTrue(e.getExpressionType().equals(SetVarExpression.class));
- assertEquals("Attempting to assign conflicting types to variable 'out', int vs string.", e.getMessage());
+ assertEquals("Attempting to assign conflicting types to variable 'out', int vs string", e.getMessage());
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SimpleExpression.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SimpleExpression.java
index db51158d5c2..80ca6622001 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SimpleExpression.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SimpleExpression.java
@@ -64,29 +64,14 @@ final class SimpleExpression extends Expression {
}
@Override
- public boolean equals(Object obj) {
- if (!(obj instanceof SimpleExpression)) {
- return false;
- }
- SimpleExpression rhs = (SimpleExpression)obj;
- if (hasExecuteValue != rhs.hasExecuteValue) {
- return false;
- }
- if (!equals(executeValue, rhs.executeValue)) {
- return false;
- }
- if (hasVerifyValue != rhs.hasVerifyValue) {
- return false;
- }
- if (!equals(verifyValue, rhs.verifyValue)) {
- return false;
- }
- if (!equals(requiredInputType(), rhs.requiredInputType())) {
- return false;
- }
- if (!equals(createdOutput, rhs.createdOutput)) {
- return false;
- }
+ public boolean equals(Object o) {
+ if (!(o instanceof SimpleExpression other)) return false;
+ if (hasExecuteValue != other.hasExecuteValue) return false;
+ if (!equals(executeValue, other.executeValue)) return false;
+ if (hasVerifyValue != other.hasVerifyValue) return false;
+ if (!equals(verifyValue, other.verifyValue)) return false;
+ if (!equals(requiredInputType(), other.requiredInputType())) return false;
+ if (!equals(createdOutput, other.createdOutput)) return false;
return true;
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SplitTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SplitTestCase.java
index 7ad4db41e33..d9a8dfcebe6 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SplitTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SplitTestCase.java
@@ -37,8 +37,8 @@ public class SplitTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new SplitExpression(";");
assertVerify(DataType.STRING, exp, DataType.getArray(DataType.STRING));
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/StatementTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/StatementTestCase.java
index 1a1442f68ac..6ceadff8b28 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/StatementTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/StatementTestCase.java
@@ -90,9 +90,9 @@ public class StatementTestCase {
public void requireThatInternalVerificationIsPerformed() {
Expression exp = newStatement(SimpleExpression.newOutput(DataType.STRING),
SimpleExpression.newConversion(DataType.INT, DataType.STRING));
- assertVerifyThrows(null, exp, "Expected int input, got string.");
- assertVerifyThrows(DataType.INT, exp, "Expected int input, got string.");
- assertVerifyThrows(DataType.STRING, exp, "Expected int input, got string.");
+ assertVerifyThrows(null, exp, "Expected int input, got string");
+ assertVerifyThrows(DataType.INT, exp, "Expected int input, got string");
+ assertVerifyThrows(DataType.STRING, exp, "Expected int input, got string");
exp = newStatement(SimpleExpression.newOutput(DataType.INT),
SimpleExpression.newConversion(DataType.INT, DataType.STRING));
@@ -104,7 +104,7 @@ public class StatementTestCase {
@Test
public void requireThatStatementIsExecuted() {
ExecutionContext ctx = new ExecutionContext(new SimpleTestAdapter());
- StatementExpression statement = newStatement(new SetValueExpression(new IntegerFieldValue(69)));
+ StatementExpression statement = newStatement(new ConstantExpression(new IntegerFieldValue(69)));
newStatement(statement).execute(ctx);
FieldValue val = ctx.getValue();
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SubstringTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SubstringTestCase.java
index f6bed7831ae..b209533f379 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SubstringTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SubstringTestCase.java
@@ -37,8 +37,8 @@ public class SubstringTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new SubstringExpression(6, 9);
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchTestCase.java
index c79d38f5650..5d8be76c1b4 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchTestCase.java
@@ -58,8 +58,8 @@ public class SwitchTestCase {
Expression foo = SimpleExpression.newConversion(DataType.STRING, DataType.INT);
Expression exp = new SwitchExpression(Collections.singletonMap("foo", foo));
assertVerify(DataType.STRING, exp, DataType.STRING); // does not touch output
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
@Test
@@ -67,10 +67,10 @@ public class SwitchTestCase {
Map<String, Expression> cases = new HashMap<>();
cases.put("foo", SimpleExpression.newRequired(DataType.INT));
assertVerifyThrows(DataType.STRING, new SwitchExpression(cases),
- "Expected int input, got string.");
+ "Expected int input, got string");
assertVerifyThrows(DataType.STRING, new SwitchExpression(Collections.<String, Expression>emptyMap(),
SimpleExpression.newRequired(DataType.INT)),
- "Expected int input, got string.");
+ "Expected int input, got string");
}
@Test
@@ -79,7 +79,7 @@ public class SwitchTestCase {
new SwitchExpression(Collections.<String, Expression>emptyMap()).execute(new IntegerFieldValue(69));
fail();
} catch (IllegalArgumentException e) {
- assertEquals("Expected string input, got int.", e.getMessage());
+ assertEquals("Expected string input, got int", e.getMessage());
}
}
@@ -104,9 +104,9 @@ public class SwitchTestCase {
@Test
public void requireThatCorrectExpressionIsExecuted() {
Map<String, Expression> cases = new HashMap<>();
- cases.put("foo", new StatementExpression(new SetValueExpression(new StringFieldValue("bar")),
+ cases.put("foo", new StatementExpression(new ConstantExpression(new StringFieldValue("bar")),
new SetVarExpression("out")));
- cases.put("baz", new StatementExpression(new SetValueExpression(new StringFieldValue("cox")),
+ cases.put("baz", new StatementExpression(new ConstantExpression(new StringFieldValue("cox")),
new SetVarExpression("out")));
Expression exp = new SwitchExpression(cases);
assertEvaluate(new StringFieldValue("foo"), exp, new StringFieldValue("bar"));
@@ -117,9 +117,9 @@ public class SwitchTestCase {
@Test
public void requireThatDefaultExpressionIsExecuted() {
Map<String, Expression> cases = new HashMap<>();
- cases.put("foo", new StatementExpression(new SetValueExpression(new StringFieldValue("bar")),
+ cases.put("foo", new StatementExpression(new ConstantExpression(new StringFieldValue("bar")),
new SetVarExpression("out")));
- Expression defaultExp = new StatementExpression(new SetValueExpression(new StringFieldValue("cox")),
+ Expression defaultExp = new StatementExpression(new ConstantExpression(new StringFieldValue("cox")),
new SetVarExpression("out"));
Expression exp = new SwitchExpression(cases, defaultExp);
assertEvaluate(new StringFieldValue("foo"), exp, new StringFieldValue("bar"));
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ThisTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ThisTestCase.java
index e33c8330d8e..7fc1f2fb4bd 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ThisTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ThisTestCase.java
@@ -29,7 +29,7 @@ public class ThisTestCase {
Expression exp = new ThisExpression();
assertVerify(DataType.INT, exp, DataType.INT);
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToArrayTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToArrayTestCase.java
index 294f6f2e266..e7a7ef5aee5 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToArrayTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToArrayTestCase.java
@@ -33,7 +33,7 @@ public class ToArrayTestCase {
Expression exp = new ToArrayExpression();
assertVerify(DataType.INT, exp, DataType.getArray(DataType.INT));
assertVerify(DataType.STRING, exp, DataType.getArray(DataType.STRING));
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToBoolTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToBoolTestCase.java
index 920f186c468..cac754e2b77 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToBoolTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToBoolTestCase.java
@@ -34,7 +34,7 @@ public class ToBoolTestCase {
Expression exp = new ToBoolExpression();
assertVerify(DataType.INT, exp, DataType.BOOL);
assertVerify(DataType.STRING, exp, DataType.BOOL);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToByteTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToByteTestCase.java
index 76e075b4315..4bee5953b8c 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToByteTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToByteTestCase.java
@@ -30,7 +30,7 @@ public class ToByteTestCase {
Expression exp = new ToByteExpression();
assertVerify(DataType.INT, exp, DataType.BYTE);
assertVerify(DataType.STRING, exp, DataType.BYTE);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToDoubleTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToDoubleTestCase.java
index ab0263ee134..39f347417b1 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToDoubleTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToDoubleTestCase.java
@@ -30,7 +30,7 @@ public class ToDoubleTestCase {
Expression exp = new ToDoubleExpression();
assertVerify(DataType.INT, exp, DataType.DOUBLE);
assertVerify(DataType.STRING, exp, DataType.DOUBLE);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToEpochSecondExpressionTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToEpochSecondExpressionTestCase.java
index 7203afcc1a0..3a6bf85f972 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToEpochSecondExpressionTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToEpochSecondExpressionTestCase.java
@@ -27,8 +27,8 @@ public class ToEpochSecondExpressionTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new ToEpochSecondExpression();
assertVerify(DataType.STRING, exp, DataType.LONG);
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
- assertVerifyThrows(null, exp, "Expected string input, got null.");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToFloatTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToFloatTestCase.java
index d36b7c88da3..14b0bf57a45 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToFloatTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToFloatTestCase.java
@@ -30,7 +30,7 @@ public class ToFloatTestCase {
Expression exp = new ToFloatExpression();
assertVerify(DataType.INT, exp, DataType.FLOAT);
assertVerify(DataType.STRING, exp, DataType.FLOAT);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToIntegerTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToIntegerTestCase.java
index 7831c6f675f..56c26cba19b 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToIntegerTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToIntegerTestCase.java
@@ -30,7 +30,7 @@ public class ToIntegerTestCase {
Expression exp = new ToIntegerExpression();
assertVerify(DataType.INT, exp, DataType.INT);
assertVerify(DataType.STRING, exp, DataType.INT);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToLongTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToLongTestCase.java
index f586b8ce110..60f7a84f044 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToLongTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToLongTestCase.java
@@ -30,7 +30,7 @@ public class ToLongTestCase {
Expression exp = new ToLongExpression();
assertVerify(DataType.INT, exp, DataType.LONG);
assertVerify(DataType.STRING, exp, DataType.LONG);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToPositionTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToPositionTestCase.java
index 99d4fc2731f..1317df130ff 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToPositionTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToPositionTestCase.java
@@ -31,8 +31,8 @@ public class ToPositionTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new ToPositionExpression();
assertVerify(DataType.STRING, exp, PositionDataType.INSTANCE);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToStringTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToStringTestCase.java
index 43dfbf76b7f..6c3bc8fc160 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToStringTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToStringTestCase.java
@@ -30,7 +30,7 @@ public class ToStringTestCase {
Expression exp = new ToStringExpression();
assertVerify(DataType.INT, exp, DataType.STRING);
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToWsetTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToWsetTestCase.java
index 3b284fd9ae9..c0c938bb3b6 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToWsetTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ToWsetTestCase.java
@@ -60,7 +60,7 @@ public class ToWsetTestCase {
DataType.getWeightedSet(DataType.INT, createIfNonExistent, removeIfZero));
ExpressionAssert.assertVerify(DataType.STRING, exp,
DataType.getWeightedSet(DataType.STRING, createIfNonExistent, removeIfZero));
- assertVerifyThrows(null, exp, "Expected any input, got null.");
+ assertVerifyThrows(null, exp, "Expected any input, but no input is specified");
}
private static void assertConvert(boolean createIfNonExistent, boolean removeIfZero) {
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/TokenizeTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/TokenizeTestCase.java
index 309c57533cc..a92205cc30f 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/TokenizeTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/TokenizeTestCase.java
@@ -48,8 +48,8 @@ public class TokenizeTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new TokenizeExpression(new SimpleLinguistics(), new AnnotatorConfig());
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/TrimTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/TrimTestCase.java
index 5664349a96e..95c272e1fca 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/TrimTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/TrimTestCase.java
@@ -28,8 +28,8 @@ public class TrimTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new TrimExpression();
assertVerify(DataType.STRING, exp, DataType.STRING);
- assertVerifyThrows(null, exp, "Expected string input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected string input, got int.");
+ assertVerifyThrows(null, exp, "Expected string input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected string input, got int");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ZCurveTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ZCurveTestCase.java
index ee6a5793d76..b0899d209cb 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ZCurveTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ZCurveTestCase.java
@@ -30,8 +30,8 @@ public class ZCurveTestCase {
public void requireThatExpressionCanBeVerified() {
Expression exp = new ZCurveExpression();
assertVerify(PositionDataType.INSTANCE, exp, DataType.LONG);
- assertVerifyThrows(null, exp, "Expected position input, got null.");
- assertVerifyThrows(DataType.INT, exp, "Expected position input, got int.");
+ assertVerifyThrows(null, exp, "Expected position input, but no input is specified");
+ assertVerifyThrows(DataType.INT, exp, "Expected position input, got int");
}
@Test
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ExpressionTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ExpressionTestCase.java
index 551f770a01e..45438a8f273 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ExpressionTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ExpressionTestCase.java
@@ -51,7 +51,7 @@ public class ExpressionTestCase {
assertExpression(ScriptExpression.class, "{ 1; 2 }");
assertExpression(SelectInputExpression.class, "select_input { field1: 2; }");
assertExpression(SetLanguageExpression.class, "set_language");
- assertExpression(SetValueExpression.class, "1");
+ assertExpression(ConstantExpression.class, "1");
assertExpression(SetVarExpression.class, "set_var myvar1");
assertExpression(SplitExpression.class, "split '1'");
assertExpression(StatementExpression.class, "1 | 2");
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/FieldNameTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/FieldNameTestCase.java
index 41b8731995e..d021a633a36 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/FieldNameTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/FieldNameTestCase.java
@@ -23,7 +23,7 @@ public class FieldNameTestCase {
public void requireThatCatDotIsNotConfusedWithFieldName() throws ParseException {
assertEquals(new CatExpression(new InputExpression("foo"), new InputExpression("bar")),
Expression.fromString("input foo . input bar"));
- assertEquals(new CatExpression(new InputExpression("foo"), new SetValueExpression(new StringFieldValue("bar"))),
+ assertEquals(new CatExpression(new InputExpression("foo"), new ConstantExpression(new StringFieldValue("bar"))),
Expression.fromString("input foo . 'bar'"));
}
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ScriptTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ScriptTestCase.java
index ad2b9ebd6f9..978c827556b 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ScriptTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ScriptTestCase.java
@@ -1,8 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.indexinglanguage.parser;
+import com.yahoo.vespa.indexinglanguage.expressions.ConstantExpression;
import com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression;
-import com.yahoo.vespa.indexinglanguage.expressions.SetValueExpression;
import com.yahoo.vespa.indexinglanguage.expressions.StatementExpression;
import org.junit.Test;
@@ -17,7 +17,7 @@ public class ScriptTestCase {
@Test
public void requireThatRootProductionIsFlexible() throws ParseException {
- assertRoot(SetValueExpression.class, "1");
+ assertRoot(ConstantExpression.class, "1");
assertRoot(StatementExpression.class, "1 | echo");
assertRoot(StatementExpression.class, "{ 1 | echo }");
assertRoot(StatementExpression.class, "{ 1 | echo; }");