Package com.yahoo.document.select.rule
Class LogicNode
- java.lang.Object
-
- com.yahoo.document.select.rule.LogicNode
-
- All Implemented Interfaces:
ExpressionNode
public class LogicNode extends Object implements ExpressionNode
This class defines a logical expression of nodes. This implementation uses a stack to evaluate its content as to avoid deep recursions when building the parse tree.- Author:
- Simon Thoresen Hult
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
LogicNode.NodeItem
Private class to store expression nodes in a stack.
-
Constructor Summary
Constructors Constructor Description LogicNode()
Construct an empty logic expression.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(Visitor visitor)
Perform visitation of this node.LogicNode
add(String operator, ExpressionNode node)
Adds an (operator, node) pair to this expression.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()
String
toString()
-
-
-
Field Detail
-
NOP
public static final int NOP
- See Also:
- Constant Field Values
-
OR
public static final int OR
- See Also:
- Constant Field Values
-
AND
public static final int AND
- See Also:
- Constant Field Values
-
-
Method Detail
-
getItems
public List<LogicNode.NodeItem> getItems()
-
add
public LogicNode add(String operator, ExpressionNode node)
Adds an (operator, node) pair to this expression.- Parameters:
operator
- The operator that combines the previous with the node given.node
- The node to add to this.- Returns:
- This, to allow chaining.
-
getBucketSet
public BucketSet getBucketSet(BucketIdFactory factory)
Description copied from interface:ExpressionNode
Returns the set of bucket ids covered by this node.- Specified by:
getBucketSet
in interfaceExpressionNode
- Parameters:
factory
- the factory used by the current application.
-
evaluate
public Object evaluate(Context context)
Description copied from interface:ExpressionNode
Evaluate the content of this node based on document object, and return that value.- Specified by:
evaluate
in interfaceExpressionNode
- Parameters:
context
- the document to evaluate over.- Returns:
- the value of this.
-
accept
public void accept(Visitor visitor)
Description copied from interface:ExpressionNode
Perform visitation of this node.- Specified by:
accept
in interfaceExpressionNode
- Parameters:
visitor
- the visitor that wishes to visit the node.
-
-