A super easy PHP Framework for web development!
https://github.com/exacti/phacil-framework
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
1.6 KiB
79 lines
1.6 KiB
<?php
|
|
/**
|
|
* Copyright © 2023 ExacTI Technology Solutions. All rights reserved.
|
|
* GPLv3 General License.
|
|
* https://exacti.com.br
|
|
* Phacil PHP Framework - https://github.com/exacti/phacil-framework
|
|
*/
|
|
|
|
namespace Phacil\Framework\MagiQL\Manipulation;
|
|
|
|
use Phacil\Framework\MagiQL\Api\Syntax\QueryPartInterface;
|
|
use Phacil\Framework\MagiQL\Api\QueryInterface;
|
|
|
|
/**
|
|
* Class AbstractSetQuery.
|
|
*/
|
|
abstract class AbstractSetQuery implements QueryInterface, QueryPartInterface
|
|
{
|
|
/**
|
|
* @var array
|
|
*/
|
|
protected $union = [];
|
|
|
|
/**
|
|
* @param Select $select
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function add(Select $select)
|
|
{
|
|
$this->union[] = $select;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function getUnions()
|
|
{
|
|
return $this->union;
|
|
}
|
|
|
|
/**
|
|
* @throws QueryException
|
|
*
|
|
* @return \Phacil\Framework\MagiQL\Syntax\Table
|
|
*/
|
|
public function getTable()
|
|
{
|
|
throw new QueryException(
|
|
\sprintf('%s does not support tables', $this->partName())
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @throws QueryException
|
|
*
|
|
* @return \Phacil\Framework\MagiQL\Syntax\Where
|
|
*/
|
|
public function getWhere()
|
|
{
|
|
throw new QueryException(
|
|
\sprintf('%s does not support WHERE.', $this->partName())
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @throws QueryException
|
|
*
|
|
* @return \Phacil\Framework\MagiQL\Syntax\Where
|
|
*/
|
|
public function where()
|
|
{
|
|
throw new QueryException(
|
|
\sprintf('%s does not support the WHERE statement.', $this->partName())
|
|
);
|
|
}
|
|
}
|
|
|