/**
  * {@inheritDoc}
  */
 public function walkCompositeExpression(CompositeExpression $expr)
 {
     $expressionList = array();
     foreach ($expr->getExpressionList() as $child) {
         $expressionList[] = $this->dispatch($child);
     }
     switch ($expr->getType()) {
         case CompositeExpression::TYPE_AND:
             return $this->andExpressions($expressionList);
         case CompositeExpression::TYPE_OR:
             return $this->orExpressions($expressionList);
         default:
             throw new \RuntimeException("Unknown composite " . $expr->getType());
     }
 }