src/POData/UriProcessor/QueryProcessor/ExpressionParser/ExpressionParser2.php
/**
     * Process an arithmetic expression node for nullability
     * 
     * @param FunctionCallExpression $expression       The function call expression
     *                                                 node to process.
     * @param AbstractExpression     $parentExpression The parent expression of 
     *                                                 expression node to process.
     * 
     * @return LogicalExpression|null
     */
Process an arithmetic expression node for nullability

@param FunctionCallExpression $expression       The function call expression
node to process.
@param AbstractExpression     $parentExpression The parent expression of
expression node to process.


Process an arithmetic expression node for nullability @param FunctionCallExpression $expression The function call expression node to process . @param AbstractExpression $parentExpression The parent expression of expression node to process .
private function _processFunctionCallNode(FunctionCallExpression $expression,
        $parentExpression
    ) {
        $paramExpressions = $expression->getParamExpressions();
        $checkNullForMostChild 
            = strcmp(
                $expression->getFunctionDescription()->name,
                'is_null'
            ) === 0;
        $resultExpression = null;
        foreach ($paramExpressions as $paramExpression) {
            $resultExpression1 = $this->_processNodeForNullability(
                $paramExpression, 
                $expression,
                !$checkNullForMostChild
            );
            if ($resultExpression1 != null && $resultExpression != null) {
                $resultExpression = $this->_mergeNullableExpressionTrees(
                    $resultExpression, 
                    $resultExpression1
                );
            } else if ($resultExpression1 != null && $resultExpression == null) {
                $resultExpression = $resultExpression1;
            }
        }
        if ($resultExpression == null) {
            return null;
        }
        if ($parentExpression == null) {
            return new LogicalExpression(
                $resultExpression, 
                $expression, 
                ExpressionType::AND_LOGICAL
            );
        }
        return $resultExpression;
    }
private function _processFunctionCallNode ( FunctionCallExpression $ expression , $ parentExpression ) { $ paramExpressions = $ expression -> getParamExpressions ( ) ; $ checkNullForMostChild = strcmp ( $ expression -> getFunctionDescription ( ) -> name , 'is_null' ) === 0 ; $ resultExpression = null ; foreach ( $ paramExpressions as $ paramExpression ) { $ resultExpression1 = $ this -> _processNodeForNullability ( $ paramExpression , $ expression , ! $ checkNullForMostChild ) ; if ( $ resultExpression1 != null && $ resultExpression != null ) { $ resultExpression = $ this -> _mergeNullableExpressionTrees ( $ resultExpression , $ resultExpression1 ) ; } else if ( $ resultExpression1 != null && $ resultExpression == null ) { $ resultExpression = $ resultExpression1 ; } } if ( $ resultExpression == null ) { return null ; } if ( $ parentExpression == null ) { return new LogicalExpression ( $ resultExpression , $ expression , ExpressionType :: AND_LOGICAL ) ; } return $ resultExpression ; }
Process an arithmetic expression node for nullability
Process an arithmetic expression node for nullability