src/POData/UriProcessor/QueryProcessor/ExpressionParser/ExpressionParser2.php
/**
     * Process the expression node for nullability
     * 
     * @param AbstractExpression $expression The expression node to process.
     * @param AbstractExpression $parentExpression The parent expression of expression node to process.
     * @param boolean            $checkNullForMostChild whether to include null check for current property.
     * 
     * @return AbstractExpression New expression tree with nullability check
     * 
     * @throws ODataException
     */
Process the expression node for nullability

@param AbstractExpression $expression The expression node to process.
@param AbstractExpression $parentExpression The parent expression of expression node to process.
@param boolean            $checkNullForMostChild whether to include null check for current property.

@return AbstractExpression New expression tree with nullability check


Process the expression node for nullability @param AbstractExpression $expression The expression node to process . @param AbstractExpression $parentExpression The parent expression of expression node to process . @param boolean $checkNullForMostChild whether to include null check for current property . @return AbstractExpression New expression tree with nullability check
private function _processNodeForNullability($expression, $parentExpression, 
        $checkNullForMostChild = true
    ) {
        if ($expression instanceof ArithmeticExpression) {
            return $this->_processArithmeticNode($expression);
        } else if ($expression instanceof ConstantExpression) {
            return null;
        } else if ($expression instanceof FunctionCallExpression) {
            return $this->_processFunctionCallNode($expression, $parentExpression);
        } else if ($expression instanceof LogicalExpression) {
            return $this->_processLogicalNode($expression, $parentExpression);
        } else if ($expression instanceof PropertyAccessExpression) {
            return $this->_processPropertyAccessNode(
                $expression, 
                $parentExpression, 
                $checkNullForMostChild
            );
        } else if ($expression instanceof RelationalExpression) {
            return $this->_processRelationalNode($expression, $parentExpression);
        } else if ($expression instanceof UnaryExpression) {
            return $this->_processUnaryNode($expression, $parentExpression);
        }
        throw ODataException::createSyntaxError(
            Messages::expressionParser2UnexpectedExpression(get_class($expression))
        );
    }
private function _processNodeForNullability ( $ expression , $ parentExpression , $ checkNullForMostChild = true ) { if ( $ expression instanceof ArithmeticExpression ) { return $ this -> _processArithmeticNode ( $ expression ) ; } else if ( $ expression instanceof ConstantExpression ) { return null ; } else if ( $ expression instanceof FunctionCallExpression ) { return $ this -> _processFunctionCallNode ( $ expression , $ parentExpression ) ; } else if ( $ expression instanceof LogicalExpression ) { return $ this -> _processLogicalNode ( $ expression , $ parentExpression ) ; } else if ( $ expression instanceof PropertyAccessExpression ) { return $ this -> _processPropertyAccessNode ( $ expression , $ parentExpression , $ checkNullForMostChild ) ; } else if ( $ expression instanceof RelationalExpression ) { return $ this -> _processRelationalNode ( $ expression , $ parentExpression ) ; } else if ( $ expression instanceof UnaryExpression ) { return $ this -> _processUnaryNode ( $ expression , $ parentExpression ) ; } throw ODataException :: createSyntaxError ( Messages :: expressionParser2UnexpectedExpression ( get_class ( $ expression ) ) ) ; }
Process the expression node for nullability
Process the expression node for nullability