private function castDefinition($definition, $name)
{
if ($definition instanceof DefinitionHelper) {
$definition = $definition->getDefinition($name);
} elseif (is_array($definition)) {
$definition = new ArrayDefinition($name, $definition);
} elseif ($definition instanceof \Closure) {
$definition = new FactoryDefinition($name, $definition);
} elseif (!$definition instanceof Definition) {
$definition = new ValueDefinition($name, $definition);
}
return $definition;
}