Class AbstractExpressionNode<T,​R>

    • Field Detail

      • _metadata

        protected final Metadata<T> _metadata
        Expression metadata
    • Constructor Detail

      • AbstractExpressionNode

        public AbstractExpressionNode()
        Default constructor creates an empty children list and checks current query depth against the settings
      • AbstractExpressionNode

        public AbstractExpressionNode​(java.lang.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​(java.lang.String alias,
                                      ExpressionNode<T,​?> first)
        Constructor stores alias and child expression supplied
        Parameters:
        alias - Expression alias
        first - Fist child
      • AbstractExpressionNode

        public AbstractExpressionNode​(ExpressionNode<T,​?> first,
                                      ExpressionNode<T,​?> second)
        Constructor stores the supplied child expressions
        Parameters:
        first - Fist child
        second - Second child
      • AbstractExpressionNode

        public AbstractExpressionNode​(java.lang.String alias,
                                      ExpressionNode<T,​?> first,
                                      ExpressionNode<T,​?> second)
        Constructor stores alias and children expressions supplied
        Parameters:
        alias - Expression alias
        first - Fist child
        second - Second child
      • AbstractExpressionNode

        public AbstractExpressionNode​(ExpressionNode<T,​?> first,
                                      ExpressionNode<T,​?> second,
                                      ExpressionNode<T,​?> third)
        Constructor stores the supplied child expressions
        Parameters:
        first - Fist child
        second - Second child
        third - Third child
      • AbstractExpressionNode

        public AbstractExpressionNode​(java.util.List<ExpressionNode<T,​?>> children)
        Constructor stores the supplied child expressions
        Parameters:
        children - List of child expressions
      • AbstractExpressionNode

        public AbstractExpressionNode​(java.lang.String alias,
                                      java.util.List<ExpressionNode<T,​?>> children)
        Constructor stores alias and children expressions supplied
        Parameters:
        alias - Expression alias
        children - List of child expressions
    • Method Detail

      • ctx

        protected final EvaluationContext ctx()
        Returns current evaluation context
        Returns:
        Evaluation context
      • setParent

        public void setParent​(ExpressionNode<T,​?> parent)
        Setter for expression parent
        Specified by:
        setParent in interface ExpressionNode<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 type
        Y - 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 type
        Y - Child return type
        Parameters:
        index - Child expression index
        value - Object to handle
        Returns:
        Evaluation result
      • containsAggregation

        public boolean containsAggregation()
        Determines whether expression contains aggregation nodes or not
        Specified by:
        containsAggregation in interface ExpressionNode<T,​R>
        Returns:
        True or false
      • isAccessor

        public boolean isAccessor()
        Determines whether expression is an accessor or not
        Specified by:
        isAccessor in interface ExpressionNode<T,​R>
        Returns:
        True or false
      • isInstantlyEvaluable

        public boolean isInstantlyEvaluable()
        Determines whether expression can be evaluated instantly or not
        Specified by:
        isInstantlyEvaluable in interface ExpressionNode<T,​R>
        Returns:
        True or false
      • getAlias

        public java.lang.String getAlias()
        Returns expression alias
        Specified by:
        getAlias in interface ExpressionNode<T,​R>
        Returns:
        Expression alias
      • setAlias

        public void setAlias​(java.lang.String alias)
        Setter for alias
        Specified by:
        setAlias in interface ExpressionNode<T,​R>
        Parameters:
        alias - Expression alias
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object