Class AbstractExpressionNode<T,R>
- java.lang.Object
-
- org.apache.qpid.server.query.engine.parsing.expression.AbstractExpressionNode<T,R>
-
- Type Parameters:
T- Input parameter typeR- Return parameter type
- All Implemented Interfaces:
Function<T,R>,Expression<T,R>,ExpressionNode<T,R>
- Direct Known Subclasses:
AbstractArithmeticExpression,AbstractComparisonExpression,AbstractFunctionExpression,AbstractSetExpression,AndExpression,CaseExpression,ChainedObjectAccessor,CollectionObjectAccessor,ConfiguredObjectAccessorExpression,ConstantExpression,DelegatingCollectionAccessorExpression,DelegatingObjectAccessor,ExpressionWrapperExpression,HavingExpression,MapObjectAccessor,NotExpression,ObjectAccessorExpression,OrExpression,PredicateWrapperExpression,ProjectionExpression,QueryExpression
public abstract class AbstractExpressionNode<T,R> extends Object implements ExpressionNode<T,R>
Abstract expression node containing base functionality
-
-
Constructor Summary
Constructors Constructor Description AbstractExpressionNode()Default constructor creates an empty children list and checks current query depth against the settingsAbstractExpressionNode(String alias)Constructor stores expression aliasAbstractExpressionNode(String alias, List<ExpressionNode<T,?>> children)Constructor stores alias and children expressions suppliedAbstractExpressionNode(String alias, ExpressionNode<T,?> first)Constructor stores alias and child expression suppliedAbstractExpressionNode(String alias, ExpressionNode<T,?> first, ExpressionNode<T,?> second)Constructor stores alias and children expressions suppliedAbstractExpressionNode(List<ExpressionNode<T,?>> children)Constructor stores the supplied child expressionsAbstractExpressionNode(ExpressionNode<T,?> first)Constructor stores child expression suppliedAbstractExpressionNode(ExpressionNode<T,?> first, ExpressionNode<T,?> second)Constructor stores the supplied child expressionsAbstractExpressionNode(ExpressionNode<T,?> first, ExpressionNode<T,?> second, ExpressionNode<T,?> third)Constructor stores the supplied child expressions
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontainsAggregation()Determines whether expression contains aggregation nodes or notprotected EvaluationContextctx()Returns current evaluation contextprotected <X,Y>
YevaluateChild(int index, X value)Retrieves child expression by index and evaluates it against the value provided<Y> List<AbstractAggregationExpression<T,Y>>getAggregations()Returns expression children being aggregation nodesStringgetAlias()Returns expression aliasprotected <X,Y>
ExpressionNode<X,Y>getChild(int index)Retrieves child expression by index<Y> List<ExpressionNode<T,Y>>getChildren()Return expression children<Y> ExpressionNode<T,Y>getParent()Returns expression parentbooleanisAccessor()Determines whether expression is an accessor or notbooleanisInstantlyEvaluable()Determines whether expression can be evaluated instantly or notvoidsetAlias(String alias)Setter for aliasvoidsetParent(ExpressionNode<T,?> parent)Setter for expression parentStringtoString()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.qpid.server.query.engine.parsing.expression.Expression
andThen, apply
-
-
-
-
Constructor Detail
-
AbstractExpressionNode
public AbstractExpressionNode()
Default constructor creates an empty children list and checks current query depth against the settings
-
AbstractExpressionNode
public AbstractExpressionNode(String alias)
Constructor stores expression alias- Parameters:
alias- Expression alias
-
AbstractExpressionNode
public AbstractExpressionNode(ExpressionNode<T,?> first)
Constructor stores child expression supplied- Parameters:
first- Fist child
-
AbstractExpressionNode
public AbstractExpressionNode(String alias, ExpressionNode<T,?> first)
Constructor stores alias and child expression supplied- Parameters:
alias- Expression aliasfirst- Fist child
-
AbstractExpressionNode
public AbstractExpressionNode(ExpressionNode<T,?> first, ExpressionNode<T,?> second)
Constructor stores the supplied child expressions- Parameters:
first- Fist childsecond- Second child
-
AbstractExpressionNode
public AbstractExpressionNode(String alias, ExpressionNode<T,?> first, ExpressionNode<T,?> second)
Constructor stores alias and children expressions supplied- Parameters:
alias- Expression aliasfirst- Fist childsecond- Second child
-
AbstractExpressionNode
public AbstractExpressionNode(ExpressionNode<T,?> first, ExpressionNode<T,?> second, ExpressionNode<T,?> third)
Constructor stores the supplied child expressions- Parameters:
first- Fist childsecond- Second childthird- Third child
-
AbstractExpressionNode
public AbstractExpressionNode(List<ExpressionNode<T,?>> children)
Constructor stores the supplied child expressions- Parameters:
children- List of child expressions
-
AbstractExpressionNode
public AbstractExpressionNode(String alias, List<ExpressionNode<T,?>> children)
Constructor stores alias and children expressions supplied- Parameters:
alias- Expression aliaschildren- List of child expressions
-
-
Method Detail
-
ctx
protected final EvaluationContext ctx()
Returns current evaluation context- Returns:
- Evaluation context
-
getParent
public <Y> ExpressionNode<T,Y> getParent()
Returns expression parent- Specified by:
getParentin interfaceExpressionNode<T,R>- Returns:
- Expression parent
-
setParent
public void setParent(ExpressionNode<T,?> parent)
Setter for expression parent- Specified by:
setParentin interfaceExpressionNode<T,R>- Parameters:
parent- Expression parent
-
getChild
protected <X,Y> ExpressionNode<X,Y> getChild(int index)
Retrieves child expression by index- Type Parameters:
X- Child input typeY- Child return type- Parameters:
index- Child index- Returns:
- Expression child or null
-
evaluateChild
protected <X,Y> Y evaluateChild(int index, X value)Retrieves child expression by index and evaluates it against the value provided- Type Parameters:
X- Child input typeY- Child return type- Parameters:
index- Child expression indexvalue- Object to handle- Returns:
- Evaluation result
-
getChildren
public <Y> List<ExpressionNode<T,Y>> getChildren()
Return expression children- Specified by:
getChildrenin interfaceExpressionNode<T,R>- Returns:
- List of child expressions
-
containsAggregation
public boolean containsAggregation()
Determines whether expression contains aggregation nodes or not- Specified by:
containsAggregationin interfaceExpressionNode<T,R>- Returns:
- True or false
-
isAccessor
public boolean isAccessor()
Determines whether expression is an accessor or not- Specified by:
isAccessorin interfaceExpressionNode<T,R>- Returns:
- True or false
-
isInstantlyEvaluable
public boolean isInstantlyEvaluable()
Determines whether expression can be evaluated instantly or not- Specified by:
isInstantlyEvaluablein interfaceExpressionNode<T,R>- Returns:
- True or false
-
getAlias
public String getAlias()
Returns expression alias- Specified by:
getAliasin interfaceExpressionNode<T,R>- Returns:
- Expression alias
-
setAlias
public void setAlias(String alias)
Setter for alias- Specified by:
setAliasin interfaceExpressionNode<T,R>- Parameters:
alias- Expression alias
-
getAggregations
public <Y> List<AbstractAggregationExpression<T,Y>> getAggregations()
Returns expression children being aggregation nodes- Specified by:
getAggregationsin interfaceExpressionNode<T,R>- Type Parameters:
Y- Return type- Returns:
- List of aggregation expressions
-
-