summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-09-14 13:26:32 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2021-09-14 13:26:32 +0200
commit50bcbfed78d2029b611b38ac9c7b251cf7c1361f (patch)
tree35095bc4e956adb5e608170e347bb42206554339 /searchlib
parent56e82a8d44f957f18a2f82e5bcad6079a11cee2d (diff)
Create as list too
Diffstat (limited to 'searchlib')
-rwxr-xr-xsearchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/IfNode.java12
1 files changed, 4 insertions, 8 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/IfNode.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/IfNode.java
index 92c6d6f8638..a3c70b1a244 100755
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/IfNode.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/IfNode.java
@@ -7,8 +7,6 @@ import com.yahoo.searchlib.rankingexpression.evaluation.Value;
import com.yahoo.tensor.TensorType;
import com.yahoo.tensor.evaluation.TypeContext;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.Deque;
import java.util.List;
@@ -22,7 +20,8 @@ public final class IfNode extends CompositeNode {
/** The expression nodes that make up this condition. */
private final ExpressionNode condition, trueExpression, falseExpression;
-
+ /** Frequent calls to children() makes this caching necessary. Might skip the entries above and just keep them as list.*/
+ private final List<ExpressionNode> asList;
private final Double trueProbability;
public IfNode(ExpressionNode condition, ExpressionNode trueExpression, ExpressionNode falseExpression) {
@@ -46,15 +45,12 @@ public final class IfNode extends CompositeNode {
this.trueProbability = trueProbability;
this.trueExpression = trueExpression;
this.falseExpression = falseExpression;
+ this.asList = List.of(condition, trueExpression, falseExpression);
}
@Override
public List<ExpressionNode> children() {
- List<ExpressionNode> children = new ArrayList<>(4);
- children.add(condition);
- children.add(trueExpression);
- children.add(falseExpression);
- return Collections.unmodifiableList(children);
+ return asList;
}
public ExpressionNode getCondition() { return condition; }