Package com.yahoo.searchlib.expression
Class MultiArgFunctionNode
- java.lang.Object
-
- com.yahoo.vespa.objects.Selectable
-
- com.yahoo.vespa.objects.Identifiable
-
- com.yahoo.searchlib.expression.ExpressionNode
-
- com.yahoo.searchlib.expression.FunctionNode
-
- com.yahoo.searchlib.expression.MultiArgFunctionNode
-
- All Implemented Interfaces:
Serializable
,Cloneable
- Direct Known Subclasses:
CatFunctionNode
,MathFunctionNode
,NumericFunctionNode
,StrCatFunctionNode
,UnaryFunctionNode
public abstract class MultiArgFunctionNode extends FunctionNode
This is an abstract super-class for all functions that accepts multiple arguments. This node implements the necessary API for manipulating arguments.
- Author:
- baldersheim, Simon Thoresen Hult
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
classId
-
Constructor Summary
Constructors Constructor Description MultiArgFunctionNode()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description MultiArgFunctionNode
addArg(ExpressionNode arg)
Adds the given argument to this function.MultiArgFunctionNode
clone()
protected boolean
equalsFunction(FunctionNode obj)
protected abstract boolean
equalsMultiArgFunction(MultiArgFunctionNode obj)
ExpressionNode
getArg(int i)
Returns the argument at the given index.int
getNumArgs()
Returns the number of arguments this function has.int
hashCode()
protected boolean
onCalculate(List<ExpressionNode> args, ResultNode result)
protected void
onDeserialize(com.yahoo.vespa.objects.Deserializer buf)
protected boolean
onExecute()
protected int
onGetClassId()
protected void
onPrepare()
protected void
onPrepareResult()
protected void
onSerialize(com.yahoo.vespa.objects.Serializer buf)
void
selectMembers(com.yahoo.vespa.objects.ObjectPredicate predicate, com.yahoo.vespa.objects.ObjectOperation operation)
void
visitMembers(com.yahoo.vespa.objects.ObjectVisitor visitor)
-
Methods inherited from class com.yahoo.searchlib.expression.FunctionNode
equalsExpression, getResult, setResult
-
Methods inherited from class com.yahoo.searchlib.expression.ExpressionNode
equals, execute, executeIterative, onArgument, prepare
-
-
-
-
Method Detail
-
addArg
public MultiArgFunctionNode addArg(ExpressionNode arg)
Adds the given argument to this function.
- Parameters:
arg
- The argument to add.- Returns:
- This, to allow chaining.
-
getArg
public ExpressionNode getArg(int i)
Returns the argument at the given index.
- Parameters:
i
- The index of the argument to return.- Returns:
- The argument.
-
getNumArgs
public int getNumArgs()
Returns the number of arguments this function has.
- Returns:
- The size of the argument list.
-
onExecute
protected boolean onExecute()
- Overrides:
onExecute
in classExpressionNode
-
onPrepare
protected void onPrepare()
- Overrides:
onPrepare
in classExpressionNode
-
onCalculate
protected boolean onCalculate(List<ExpressionNode> args, ResultNode result)
-
onPrepareResult
protected void onPrepareResult()
-
onGetClassId
protected int onGetClassId()
- Overrides:
onGetClassId
in classFunctionNode
-
onSerialize
protected void onSerialize(com.yahoo.vespa.objects.Serializer buf)
- Overrides:
onSerialize
in classFunctionNode
-
onDeserialize
protected void onDeserialize(com.yahoo.vespa.objects.Deserializer buf)
- Overrides:
onDeserialize
in classFunctionNode
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classcom.yahoo.vespa.objects.Identifiable
-
equalsFunction
protected final boolean equalsFunction(FunctionNode obj)
- Specified by:
equalsFunction
in classFunctionNode
-
equalsMultiArgFunction
protected abstract boolean equalsMultiArgFunction(MultiArgFunctionNode obj)
-
clone
public MultiArgFunctionNode clone()
- Overrides:
clone
in classFunctionNode
-
visitMembers
public void visitMembers(com.yahoo.vespa.objects.ObjectVisitor visitor)
- Overrides:
visitMembers
in classFunctionNode
-
selectMembers
public void selectMembers(com.yahoo.vespa.objects.ObjectPredicate predicate, com.yahoo.vespa.objects.ObjectOperation operation)
- Overrides:
selectMembers
in classcom.yahoo.vespa.objects.Selectable
-
-