Class ArithmeticNode
- java.lang.Object
-
- com.yahoo.searchlib.rankingexpression.rule.ExpressionNode
-
- com.yahoo.searchlib.rankingexpression.rule.CompositeNode
-
- com.yahoo.searchlib.rankingexpression.rule.ArithmeticNode
-
- All Implemented Interfaces:
java.io.Serializable
public final class ArithmeticNode extends CompositeNode
A binary mathematical operation- Author:
- bratseth
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ArithmeticNode(ExpressionNode leftExpression, ArithmeticOperator operator, ExpressionNode rightExpression)
ArithmeticNode(java.util.List<ExpressionNode> children, java.util.List<ArithmeticOperator> operators)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<ExpressionNode>
children()
Returns a read-only list containing the immediate children of this compositeValue
evaluate(Context context)
Returns the value of evaluating this expression over the given context.java.util.List<ArithmeticOperator>
operators()
static ArithmeticNode
resolve(ExpressionNode left, ArithmeticOperator op, ExpressionNode right)
CompositeNode
setChildren(java.util.List<ExpressionNode> newChildren)
Returns a copy of this where the children is replaced by the given children.java.lang.StringBuilder
toString(java.lang.StringBuilder string, SerializationContext context, java.util.Deque<java.lang.String> path, CompositeNode parent)
Returns a script instance of this based on the supplied script functions.com.yahoo.tensor.TensorType
type(com.yahoo.tensor.evaluation.TypeContext<Reference> context)
Returns the type this will return if evaluated with the given context.-
Methods inherited from class com.yahoo.searchlib.rankingexpression.rule.ExpressionNode
equals, hashCode, toString, toString
-
-
-
-
Constructor Detail
-
ArithmeticNode
public ArithmeticNode(java.util.List<ExpressionNode> children, java.util.List<ArithmeticOperator> operators)
-
ArithmeticNode
public ArithmeticNode(ExpressionNode leftExpression, ArithmeticOperator operator, ExpressionNode rightExpression)
-
-
Method Detail
-
operators
public java.util.List<ArithmeticOperator> operators()
-
children
public java.util.List<ExpressionNode> children()
Description copied from class:CompositeNode
Returns a read-only list containing the immediate children of this composite
- Specified by:
children
in classCompositeNode
- Returns:
- The children of this.
-
toString
public java.lang.StringBuilder toString(java.lang.StringBuilder string, SerializationContext context, java.util.Deque<java.lang.String> path, CompositeNode parent)
Description copied from class:ExpressionNode
Returns a script instance of this based on the supplied script functions.- Specified by:
toString
in classExpressionNode
- Parameters:
string
- the StringBuilder that will be appended tocontext
- the serialization contextpath
- the call path to this, used for cycle detection, or null if this is a rootparent
- the parent node of this, or null if it a root- Returns:
- the main script, referring to script instances.
-
type
public com.yahoo.tensor.TensorType type(com.yahoo.tensor.evaluation.TypeContext<Reference> context)
Description copied from class:ExpressionNode
Returns the type this will return if evaluated with the given context.- Specified by:
type
in classExpressionNode
- Parameters:
context
- the variable type bindings to use for this evaluation
-
evaluate
public Value evaluate(Context context)
Description copied from class:ExpressionNode
Returns the value of evaluating this expression over the given context.- Specified by:
evaluate
in classExpressionNode
- Parameters:
context
- the variable bindings to use for this evaluation
-
resolve
public static ArithmeticNode resolve(ExpressionNode left, ArithmeticOperator op, ExpressionNode right)
-
setChildren
public CompositeNode setChildren(java.util.List<ExpressionNode> newChildren)
Description copied from class:CompositeNode
Returns a copy of this where the children is replaced by the given children.- Specified by:
setChildren
in classCompositeNode
-
-