From a0a5dd29181cfd527f3e722bee3536ce3d09fc3b Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Sun, 19 Sep 2021 22:08:56 +0200 Subject: Remove outputType (not needed after all) --- .../expressions/ExecutionContext.java | 9 -------- .../expressions/StatementExpression.java | 24 ++++++++-------------- 2 files changed, 8 insertions(+), 25 deletions(-) (limited to 'indexinglanguage') 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 1aec13bff50..e2820dd5578 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 @@ -20,7 +20,6 @@ public class ExecutionContext implements FieldTypeAdapter, FieldValueAdapter, Cl private final FieldValueAdapter adapter; private FieldValue value; private Language language; - private DataType outputType = null; public ExecutionContext() { this(null); @@ -64,14 +63,6 @@ public class ExecutionContext implements FieldTypeAdapter, FieldValueAdapter, Cl adapter.tryOutputType(exp, fieldName, valueType); } - /** Sets the output type created by this execution */ - public void setOutputType(DataType type) { - this.outputType = type; - } - - /** Returns the output type created by this execution, or null if none */ - public DataType getOutputType() { return outputType; } - @Override public ExecutionContext setOutputValue(Expression exp, String fieldName, FieldValue fieldValue) { if (adapter == null) { 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 f5354938c67..145133e210d 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 @@ -25,9 +25,6 @@ public final class StatementExpression extends ExpressionList { /** The name of the (last) output field tthis statement will write to, or null if none */ private String outputField; - /** The type of the output created by this statement, or null if no output */ - private DataType outputType; - public StatementExpression(Expression... lst) { this(Arrays.asList(lst)); } @@ -38,12 +35,10 @@ public final class StatementExpression extends ExpressionList { private StatementExpression(Iterable list, Object unused) { super(list, resolveInputType(list)); - outputType = resolveOutputType(list); } @Override protected void doExecute(ExecutionContext context) { - context.setOutputType(outputType); for (Expression exp : this) { context.execute(exp); } @@ -58,7 +53,6 @@ public final class StatementExpression extends ExpressionList { context.setOutputField(outputField); for (Expression expression : this) context.execute(expression); - outputType = context.getValueType(); } private static DataType resolveInputType(Iterable lst) { @@ -76,19 +70,17 @@ public final class StatementExpression extends ExpressionList { return null; } - private static DataType resolveOutputType(Iterable expressions) { - DataType lastOutput = null; - for (var expression : expressions) { - DataType output = expression.createdOutputType(); - if (output != null) - lastOutput = output; + @Override + public DataType createdOutputType() { + for (int i = size(); --i >= 0; ) { + DataType type = get(i).createdOutputType(); + if (type != null) { + return type; + } } - return lastOutput; + return null; } - @Override - public DataType createdOutputType() { return outputType; } - @Override public String toString() { StringBuilder ret = new StringBuilder(); -- cgit v1.2.3