. */ namespace Doctrine\ORM\Mapping\Builder; use Doctrine\ORM\Mapping\ClassMetadata; /** * Builder Object for ClassMetadata * * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @link www.doctrine-project.com * @since 2.0 * @author Benjamin Eberlei */ class ClassMetadataBuilder { /** * @var ClassMetadata */ private $cm; public function __construct(ClassMetadata $cm) { $this->cm = $cm; } public function setMappedSuperClass() { $this->cm->isMappedSuperclass = true; } public function setCustomRepositoryClass($repositoryClassName) { $this->cm->setCustomRepositoryClass($repositoryClassName); } public function setReadOnly() { $this->cm->markReadOnly(); } public function setTable($name) { $this->cm->setPrimaryTable(array('name' => $name)); } public function addIndex(array $columns, $name) { if (!isset($this->cm->table['indexes'])) { $this->cm->table['indexes'] = array(); } $this->cm->table['indexes'][$name] = array('columns' => $columns); } public function addUniqueConstraint(array $columns, $name) { if (!isset($this->cm->table['uniqueConstraints'])) { $this->cm->table['uniqueConstraints'] = array(); } $this->cm->table['uniqueConstraints'][$name] = array('columns' => $columns); } }