/** * Sets the discriminator column definition. * * @param array $columnDef * * @param $columnDef * @throws MappingException * @return void * @see getDiscriminatorColumn() */ public function setDiscriminatorColumn($columnDef) { if ($columnDef !== null) { if (!isset($columnDef['name'])) { throw MappingException::nameIsMandatoryForDiscriminatorColumns($this->name); } if (isset($this->fieldNames[$columnDef['name']])) { throw MappingException::duplicateColumnName($this->name, $columnDef['name']); } if (!isset($columnDef['fieldName'])) { $columnDef['fieldName'] = $columnDef['name']; } if (!isset($columnDef['type'])) { $columnDef['type'] = "string"; } if (in_array($columnDef['type'], array("boolean", "array", "object", "datetime", "time", "date"))) { throw MappingException::invalidDiscriminatorColumnType($this->name, $columnDef['type']); } $this->discriminatorColumn = $columnDef; } }
/** * Sets the discriminator column definition. * * @param array $columnDef * @see getDiscriminatorColumn() */ public function setDiscriminatorColumn($columnDef) { if ($columnDef !== null) { if (isset($this->fieldNames[$columnDef['name']])) { throw MappingException::duplicateColumnName($this->name, $columnDef['name']); } if (!isset($columnDef['name'])) { throw MappingException::nameIsMandatoryForDiscriminatorColumns($this->name, $columnDef); } if (!isset($columnDef['fieldName'])) { $columnDef['fieldName'] = $columnDef['name']; } $this->discriminatorColumn = $columnDef; } }