diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-07-23 14:01:25 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-07-23 14:01:25 +0200 |
commit | 0d401efd086ba503e5d2300b8838fad7fb95ded7 (patch) | |
tree | 8122b767d4bda2b878dc65fb380fdfa525774a3d /document/src | |
parent | 880602182afb57beda70620081822b8a15f81506 (diff) |
As evaluation if now fully left to right and lazy and short ciruited, no need for special eager leftmost node.
Diffstat (limited to 'document/src')
-rw-r--r-- | document/src/main/java/com/yahoo/document/select/ResultList.java | 6 | ||||
-rw-r--r-- | document/src/main/java/com/yahoo/document/select/rule/LogicNode.java | 18 |
2 files changed, 5 insertions, 19 deletions
diff --git a/document/src/main/java/com/yahoo/document/select/ResultList.java b/document/src/main/java/com/yahoo/document/select/ResultList.java index 432e86a6c78..35b4a1ef5be 100644 --- a/document/src/main/java/com/yahoo/document/select/ResultList.java +++ b/document/src/main/java/com/yahoo/document/select/ResultList.java @@ -116,11 +116,11 @@ public class ResultList { return true; } - public interface GetResultList { + public interface LazyResultList { ResultList getResult(); } - public ResultList combineAND(GetResultList other) + public ResultList combineAND(LazyResultList other) { if (Result.FALSE == toResult()) return ResultList.toResultList(false); @@ -150,7 +150,7 @@ public class ResultList { return Result.INVALID; } - public ResultList combineOR(GetResultList other) + public ResultList combineOR(LazyResultList other) { if (Result.TRUE == toResult()) return ResultList.toResultList(true); diff --git a/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java b/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java index e22a56f6e9a..804dda5741d 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java @@ -169,8 +169,7 @@ public class LogicNode implements ExpressionNode { combineValues(buf); } } - ValueItem next = new LazyValueItem(item, context); - buf.push(buf.empty() ? new EagerValueItem(next.getOperator(), next.getResult()) : next); + buf.push(new LazyValueItem(item, context)); } while (buf.size() > 1) { combineValues(buf); @@ -247,7 +246,7 @@ public class LogicNode implements ExpressionNode { /** * Private class to store results in a stack. */ - private abstract class ValueItem implements ResultList.GetResultList { + private abstract class ValueItem implements ResultList.LazyResultList { private final int operator; ValueItem(int operator) { this.operator = operator; @@ -302,19 +301,6 @@ public class LogicNode implements ExpressionNode { } } - private final class EagerValueItem extends ValueItem { - private final ResultList value; - - EagerValueItem(int operator, ResultList value) { - super(operator); - this.value = value; - } - @Override - public ResultList getResult() { - return value; - } - } - /** * Private class to store bucket sets in a stack. */ |