protected function parseArgumentOfTypeObject($argumentName, $objectNameOrConfiguration, $configurationSourceHint)
{
if (is_array($objectNameOrConfiguration)) {
if (isset($objectNameOrConfiguration['name'])) {
$objectName = $objectNameOrConfiguration['name'];
unset($objectNameOrConfiguration['name']);
} else {
if (isset($objectNameOrConfiguration['factoryObjectName'])) {
$objectName = null;
} else {
throw new InvalidObjectConfigurationException('Object configuration for argument "' . $argumentName . '" contains neither object name nor factory object name in ' . $configurationSourceHint, 1417431742);
}
}
$objectConfiguration = $this->parseConfigurationArray($objectName, $objectNameOrConfiguration, $configurationSourceHint . ', argument "' . $argumentName . '"');
$argument = new ConfigurationArgument($argumentName, $objectConfiguration, ConfigurationArgument::ARGUMENT_TYPES_OBJECT);
} else {
$argument = new ConfigurationArgument($argumentName, $objectNameOrConfiguration, ConfigurationArgument::ARGUMENT_TYPES_OBJECT);
}
return $argument;
}