public class LogicNode extends Object implements ExpressionNode
Modifier and Type | Class and Description |
---|---|
private class |
LogicNode.BucketItem
Private class to store bucket sets in a stack.
|
class |
LogicNode.NodeItem
Private class to store expression nodes in a stack.
|
private class |
LogicNode.OrderingItem
Private class to store ordering expressions in a stack.
|
private class |
LogicNode.ValueItem
Private class to store results in a stack.
|
Modifier and Type | Field and Description |
---|---|
static int |
AND |
private List<LogicNode.NodeItem> |
items |
static int |
NOP |
static int |
OR |
Constructor and Description |
---|
LogicNode()
Construct an empty logic expression.
|
Modifier and Type | Method and Description |
---|---|
void |
accept(Visitor visitor)
Perform visitation of this node.
|
LogicNode |
add(String operator,
ExpressionNode node)
Adds an (operator, node) pair to this expression.
|
private void |
combineBuckets(Stack<LogicNode.BucketItem> buf)
Combines the top two items of the given stack using the operator of the second.
|
private void |
combineValues(Stack<LogicNode.ValueItem> buf)
Combines the top two items of the given stack using the operator of the second.
|
Object |
evaluate(Context context)
Evaluate the content of this node based on document object, and return that value.
|
BucketSet |
getBucketSet(BucketIdFactory factory)
Returns the set of bucket ids covered by this node.
|
List<LogicNode.NodeItem> |
getItems() |
OrderingSpecification |
getOrdering(int order)
If this document selection implies a specific ordering (using the orderdoc scheme),
return that specification.
|
String |
operatorToString(int operator)
Converts the given operator index to a string representation.
|
private OrderingSpecification |
pickOrdering(OrderingSpecification a,
OrderingSpecification b,
boolean isAnd) |
private void |
pickOrdering(Stack<LogicNode.OrderingItem> buf) |
private int |
stringToOperator(String operator)
Converts the given operator string to a corresponding operator index.
|
String |
toString() |
public static final int NOP
public static final int OR
public static final int AND
private final List<LogicNode.NodeItem> items
public List<LogicNode.NodeItem> getItems()
public LogicNode add(String operator, ExpressionNode node)
operator
- The operator that combines the previous with the node given.node
- The node to add to this.public BucketSet getBucketSet(BucketIdFactory factory)
ExpressionNode
getBucketSet
in interface ExpressionNode
factory
- The factory used by the current application.public OrderingSpecification getOrdering(int order)
ExpressionNode
getOrdering
in interface ExpressionNode
order
- The order in which we are looking to traverse the ordering (ASCENDING or DESCENDING)private OrderingSpecification pickOrdering(OrderingSpecification a, OrderingSpecification b, boolean isAnd)
private void pickOrdering(Stack<LogicNode.OrderingItem> buf)
private void combineBuckets(Stack<LogicNode.BucketItem> buf)
buf
- The stack of bucket items.public Object evaluate(Context context)
ExpressionNode
evaluate
in interface ExpressionNode
context
- The document to evaluate over.private void combineValues(Stack<LogicNode.ValueItem> buf)
buf
- The stack of values.public void accept(Visitor visitor)
ExpressionNode
accept
in interface ExpressionNode
visitor
- The visitor that wishes to visit the node.public String operatorToString(int operator)
operator
- The operator index to convert.private int stringToOperator(String operator)
operator
- The operator to convert.Copyright © 2017. All rights reserved.