protected function addPropertiesToClassSchema(ClassSchema $classSchema)
{
$className = $classSchema->getClassName();
$skipArtificialIdentity = false;
/* @var $valueObjectAnnotation Flow\ValueObject */
$valueObjectAnnotation = $this->getClassAnnotation($className, Flow\ValueObject::class);
if ($valueObjectAnnotation !== null && $valueObjectAnnotation->embedded === true) {
$skipArtificialIdentity = true;
} elseif ($this->isClassAnnotatedWith($className, ORM\Embeddable::class)) {
$skipArtificialIdentity = true;
}
foreach ($this->getClassPropertyNames($className) as $propertyName) {
$skipArtificialIdentity = $this->evaluateClassPropertyAnnotationsForSchema($classSchema, $propertyName) ? true : $skipArtificialIdentity;
}
if ($skipArtificialIdentity !== true) {
$classSchema->addProperty('Persistence_Object_Identifier', 'string');
}
}