示例#1
0
 public function assembleSegment($segment)
 {
     $assembler = null;
     if (is_scalar($segment)) {
         return $segment;
     } else {
         if ($segment instanceof IStatement) {
             $assembler = new StatementAssembler($segment);
         } else {
             if ($segment instanceof IClause) {
                 $assembler = new ClauseAssembler($segment);
             } else {
                 if ($segment instanceof IPredicate) {
                     $assembler = new PredicateAssembler($segment);
                 } else {
                     if ($segment instanceof ISelectExpression) {
                         $assembler = new SelectExpressionAssembler($segment);
                     } else {
                         if ($segment instanceof IExpression) {
                             $assembler = new ExpressionAssembler($segment);
                         } else {
                             throw new \Exception("Unsupported segment type " . get_class($segment));
                         }
                     }
                 }
             }
         }
     }
     $assembler->setAssembler($this);
     return $assembler->assemble();
 }
 /**
  * @expectedException \RuntimeException
  * @expectedExceptionMessage Unsupported segment
  */
 public function testUnknown()
 {
     $assembler = new ExpressionAssembler(new UnknownExpression());
     $assembler->assemble();
 }