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(); }