Class IfNode
- java.lang.Object
-
- com.yahoo.searchlib.rankingexpression.rule.ExpressionNode
-
- com.yahoo.searchlib.rankingexpression.rule.CompositeNode
-
- com.yahoo.searchlib.rankingexpression.rule.IfNode
-
- All Implemented Interfaces:
java.io.Serializable
public final class IfNode extends CompositeNode
A conditional branch of a ranking expression.- Author:
- Simon Thoresen Hult, bratseth
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description IfNode(ExpressionNode condition, ExpressionNode trueExpression, ExpressionNode falseExpression)
IfNode(ExpressionNode condition, ExpressionNode trueExpression, ExpressionNode falseExpression, java.lang.Double trueProbability)
Creates a new condition node.
-
Method Summary
All 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.ExpressionNode
getCondition()
ExpressionNode
getFalseExpression()
ExpressionNode
getTrueExpression()
java.lang.Double
getTrueProbability()
The average probability that the condition of this node will evaluate to true, or null if not knownIfNode
setChildren(java.util.List<ExpressionNode> children)
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
-
-
-
-
Constructor Detail
-
IfNode
public IfNode(ExpressionNode condition, ExpressionNode trueExpression, ExpressionNode falseExpression)
-
IfNode
public IfNode(ExpressionNode condition, ExpressionNode trueExpression, ExpressionNode falseExpression, java.lang.Double trueProbability)
Creates a new condition node.- Parameters:
condition
- the condition of thistrueExpression
- the expression to evaluate if the comparison is truefalseExpression
- the expression to evaluate if the comparison is falsetrueProbability
- the probability that the condition will evaluate to true, or null if not known.- Throws:
java.lang.IllegalArgumentException
- if trueProbability is non-null and not between 0.0 and 1.0
-
-
Method Detail
-
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.
-
getCondition
public ExpressionNode getCondition()
-
getTrueExpression
public ExpressionNode getTrueExpression()
-
getFalseExpression
public ExpressionNode getFalseExpression()
-
getTrueProbability
public java.lang.Double getTrueProbability()
The average probability that the condition of this node will evaluate to true, or null if not known
-
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
-
setChildren
public IfNode setChildren(java.util.List<ExpressionNode> children)
Description copied from class:CompositeNode
Returns a copy of this where the children is replaced by the given children.- Specified by:
setChildren
in classCompositeNode
-
-