/**
* @param $entity
* @param Definition|null $definition
* @return Definition|null
*/
private function loadDefinitionFromEntity($entity, $definition = null)
{
$definitionClass = null;
if (property_exists($entity, 'definition')) {
$definitionClass = $entity::$definition;
}
if (method_exists($entity, 'definition')) {
$definitionClass = $entity::definition();
}
if (null !== $definitionClass) {
$definition = is_object($definitionClass) ? $definitionClass : new $definitionClass();
}
if (null === $definition) {
$definition = new Definition();
}
$configuration = $definition->getConfiguration();
$configuration['entity'] = $entity;
$definition->setConfiguration($configuration);
return $definition;
}