Class AbstractFunctionExpression<T,​R>

    • Field Detail

      • _functionName

        protected final String _functionName
        Function name
    • Constructor Detail

      • AbstractFunctionExpression

        public AbstractFunctionExpression​(String alias,
                                          List<ExpressionNode<T,​?>> args)
        Constructor initializes children expression list
        Parameters:
        alias - Expression alias
        args - List of children expressions
    • Method Detail

      • getFunctionName

        public String getFunctionName()
        Getter for function name
        Returns:
        Function name
      • evaluateChild

        protected <X,​Y> Y evaluateChild​(int index,
                                              X value,
                                              FunctionParameterTypePredicate<Y> typePredicate)
        Evaluates child expression against the value supplied and validates the result against the validator
        Type Parameters:
        X - Value type
        Y - Result type
        Parameters:
        index - Child expression index
        value - Value used to evaluate child expression
        typePredicate - Predicate used for result validation
        Returns:
        Result of child expression evaluation
      • getRequiredParameter

        public <X,​Y> Y getRequiredParameter​(int index,
                                                  X value,
                                                  Class<Y> type,
                                                  String message)
        Evaluates expression using value supplied and performs validation checks of result. Returns result if checks succeeded, throws an exception otherwise.
        Type Parameters:
        X - Input parameter type
        Y - Return parameter type
        Parameters:
        index - Child expression index to evaluate
        value - Value to pass to expression
        type - Expected result type
        message - Exception message
        Returns:
        Evaluated result
      • getOptionalParameter

        public <X,​Y> Optional<Y> getOptionalParameter​(int index,
                                                            X value,
                                                            Class<Y> type,
                                                            String message)
        Evaluates nullable expression using value supplied and performs validation checks of result. Returns an empty Optional when expression is null, otherwise returns evaluated result wrapped into Optional.
        Type Parameters:
        X - Input parameter type
        Y - Return parameter type
        Parameters:
        index - Child expression index to evaluate
        value - Value to pass to expression
        type - Expected result type
        message - Exception message
        Returns:
        Optional result
      • getOptionalConstantParameter

        public <X,​Y> Optional<Y> getOptionalConstantParameter​(int index,
                                                                    Class<Y> type,
                                                                    String message)
        Evaluates nullable constant expression. Returns an empty Optional when expression is null, otherwise returns evaluated result wrapped into Optional.
        Type Parameters:
        X - Input parameter type
        Y - Return parameter type
        Parameters:
        index - Child expression index to evaluate
        type - Expected result type
        message - Exception message
        Returns:
        Optional result