diff options
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.java | 23 |
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; + } + + } + } |