public function validateIdentifier()
{
if (!$this->isMappedSuperclass) {
if ($this->isIdGeneratorNone()) {
$this->determineIdStrategy();
}
switch ($this->idGenerator) {
case self::GENERATOR_TYPE_PARENT:
if (!($this->parentMapping && $this->nodename)) {
throw MappingException::identifierRequired($this->name, 'parent and nodename');
}
break;
case self::GENERATOR_TYPE_AUTO:
if (!$this->parentMapping) {
throw MappingException::identifierRequired($this->name, 'parent');
}
break;
case self::GENERATOR_TYPE_REPOSITORY:
if (!$this->customRepositoryClassName) {
throw MappingException::repositoryRequired($this->name, $this->customRepositoryClassName);
}
break;
default:
if (!$this->identifier) {
throw MappingException::identifierRequired($this->name, 'identifier');
}
break;
}
}
}