/** * Process an unary expression node for nullability * * @param UnaryExpression $expression The unary expression node * to process. * @param AbstractExpression $parentExpression The parent expression of * expression node to process. * * @return LogicalExpression|null */ private function _processUnaryNode(UnaryExpression $expression, $parentExpression) { if ($expression->getNodeType() == ExpressionType::NEGATE) { return $this->_processNodeForNullability($expression->getChild(), $expression); } if ($expression->getNodeType() == ExpressionType::NOT_LOGICAL) { $resultExpression = $this->_processNodeForNullability($expression->getChild(), $expression); if ($resultExpression == null) { return null; } if ($parentExpression == null) { return new LogicalExpression($resultExpression, $expression, ExpressionType::AND_LOGICAL); } return $resultExpression; } throw ODataException::createSyntaxError(Messages::expressionParser2UnexpectedExpression(get_class($expression))); }