* @copyright 2010-2014 André Rothe * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) * @version SVN: $Id$ * */ namespace PHPSQLParser; use PHPSQLParser\exceptions\UnsupportedFeatureException; use PHPSQLParser\builders\SelectStatementBuilder; use PHPSQLParser\builders\DeleteStatementBuilder; use PHPSQLParser\builders\TruncateStatementBuilder; use PHPSQLParser\builders\UpdateStatementBuilder; use PHPSQLParser\builders\InsertStatementBuilder; use PHPSQLParser\builders\CreateStatementBuilder; use PHPSQLParser\builders\DropStatementBuilder; use PHPSQLParser\builders\RenameStatementBuilder; use PHPSQLParser\builders\ReplaceStatementBuilder; use PHPSQLParser\builders\ShowStatementBuilder; use PHPSQLParser\builders\BracketStatementBuilder; use PHPSQLParser\builders\UnionStatementBuilder; use PHPSQLParser\builders\UnionAllStatementBuilder; use PHPSQLParser\builders\AlterStatementBuilder; /** * This class generates SQL from the output of the PHPSQLParser. * * @author André Rothe * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) * */ class PHPSQLCreator { public function __construct($parsed = false) { if ($parsed) { $this->create($parsed); } } public function create($parsed) { $k = key($parsed); switch ($k) { case 'UNION': $builder = new UnionStatementBuilder(); $this->created = $builder->build($parsed); break; case 'UNION ALL': $builder = new UnionAllStatementBuilder(); $this->created = $builder->build($parsed); break; case 'SELECT': $builder = new SelectStatementBuilder(); $this->created = $builder->build($parsed); break; case 'INSERT': $builder = new InsertStatementBuilder(); $this->created = $builder->build($parsed); break; case 'REPLACE': $builder = new ReplaceStatementBuilder(); $this->created = $builder->build($parsed); break; case 'DELETE': $builder = new DeleteStatementBuilder(); $this->created = $builder->build($parsed); break; case 'TRUNCATE': $builder = new TruncateStatementBuilder(); $this->created = $builder->build($parsed); break; case 'UPDATE': $builder = new UpdateStatementBuilder(); $this->created = $builder->build($parsed); break; case 'RENAME': $builder = new RenameStatementBuilder(); $this->created = $builder->build($parsed); break; case 'SHOW': $builder = new ShowStatementBuilder(); $this->created = $builder->build($parsed); break; case 'CREATE': $builder = new CreateStatementBuilder(); $this->created = $builder->build($parsed); break; case 'BRACKET': $builder = new BracketStatementBuilder(); $this->created = $builder->build($parsed); break; case 'DROP': $builder = new DropStatementBuilder(); $this->created = $builder->build($parsed); break; case 'ALTER': $builder = new AlterStatementBuilder(); $this->created = $builder->build($parsed); break; default: throw new UnsupportedFeatureException($k); break; } return $this->created; } } ?>