summaryrefslogtreecommitdiffstats
path: root/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OutputExpression.java
diff options
context:
space:
mode:
Diffstat (limited to 'indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OutputExpression.java')
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OutputExpression.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OutputExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OutputExpression.java
index 398c2751bd8..267fb6fc51b 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OutputExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/OutputExpression.java
@@ -2,6 +2,11 @@
package com.yahoo.vespa.indexinglanguage.expressions;
import com.yahoo.document.DataType;
+import com.yahoo.vespa.objects.ObjectOperation;
+import com.yahoo.vespa.objects.ObjectPredicate;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* @author Simon Thoresen Hult
@@ -58,4 +63,22 @@ public abstract class OutputExpression extends Expression {
return getClass().hashCode() + (fieldName != null ? fieldName.hashCode() : 0);
}
+ public static class OutputFieldNameExtractor implements ObjectOperation, ObjectPredicate {
+
+ private final List<String> outputFieldNames = new ArrayList<>(1);
+
+ public List<String> getOutputFieldNames() { return outputFieldNames; }
+
+ @Override
+ public void execute(Object obj) {
+ outputFieldNames.add(((OutputExpression) obj).getFieldName());
+ }
+
+ @Override
+ public boolean check(Object obj) {
+ return obj instanceof OutputExpression;
+ }
+
+ }
+
}