aboutsummaryrefslogtreecommitdiffstats
path: root/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchExpression.java
diff options
context:
space:
mode:
Diffstat (limited to 'indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchExpression.java')
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/SwitchExpression.java12
1 files changed, 12 insertions, 0 deletions
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 86913d8c1ba..c7cf7066483 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
@@ -7,6 +7,7 @@ import com.yahoo.document.Field;
import com.yahoo.document.datatypes.FieldValue;
import com.yahoo.document.datatypes.StringFieldValue;
import com.yahoo.text.StringUtilities;
+import com.yahoo.vespa.indexinglanguage.ExpressionConverter;
import com.yahoo.vespa.objects.ObjectOperation;
import com.yahoo.vespa.objects.ObjectPredicate;
@@ -32,6 +33,17 @@ public final class SwitchExpression extends CompositeExpression {
this.cases.putAll(cases);
}
+ @Override
+ public SwitchExpression convertChildren(ExpressionConverter converter) {
+ var convertedCases = new LinkedHashMap<String, Expression>();
+ for (var entry : cases.entrySet()) {
+ var converted = converter.branch().convert(entry.getValue());
+ if (converted != null)
+ convertedCases.put(entry.getKey(), converted);
+ }
+ return new SwitchExpression(convertedCases, converter.branch().convert(defaultExp));
+ }
+
public boolean isEmpty() {
return defaultExp == null && cases.isEmpty();
}