Ejemplo n.º 1
0
 /**
  * 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)));
 }