protected function parsePropertyOfTypeObject($propertyName, $objectNameOrConfiguration, Configuration $parentObjectConfiguration)
    {
        if (is_array($objectNameOrConfiguration)) {
            if (isset($objectNameOrConfiguration['name'])) {
                $objectName = $objectNameOrConfiguration['name'];
                unset($objectNameOrConfiguration['name']);
            } else {
                if (isset($objectNameOrConfiguration['factoryObjectName'])) {
                    $objectName = null;
                } else {
                    $annotations = $this->reflectionService->getPropertyTagValues($parentObjectConfiguration->getClassName(), $propertyName, 'var');
                    if (count($annotations) !== 1) {
                        throw new InvalidObjectConfigurationException(sprintf('Object %s, for property "%s", contains neither object name, nor factory object name, and nor is the property properly @var - annotated.', $parentObjectConfiguration->getConfigurationSourceHint(), $propertyName, $parentObjectConfiguration->getClassName()), 1297097815);
                    }
                    $objectName = $annotations[0];
                }
            }
            $objectConfiguration = $this->parseConfigurationArray($objectName, $objectNameOrConfiguration, $parentObjectConfiguration->getConfigurationSourceHint() . ', property "' . $propertyName . '"');
            $property = new ConfigurationProperty($propertyName, $objectConfiguration, ConfigurationProperty::PROPERTY_TYPES_OBJECT);
        } else {
            $property = new ConfigurationProperty($propertyName, $objectNameOrConfiguration, ConfigurationProperty::PROPERTY_TYPES_OBJECT);
        }
        return $property;
    }
protected function parsePropertyOfTypeObject($propertyName, $objectNameOrConfiguration, Configuration $parentObjectConfiguration)
    {
        if (is_array($objectNameOrConfiguration)) {
            if (isset($objectNameOrConfiguration['name'])) {
                $objectName = $objectNameOrConfiguration['name'];
                unset($objectNameOrConfiguration['name']);
            } else {
                if (isset($objectNameOrConfiguration['factoryObjectName'])) {
                    $objectName = null;
                } else {
                    $annotations = $this->reflectionService->getPropertyTagValues($parentObjectConfiguration->getClassName(), $propertyName, 'var');
                    if (count($annotations) !== 1) {
                        throw new InvalidObjectConfigurationException(sprintf('Object %s, for property "%s", contains neither object name, nor factory object name, and nor is the property properly @var - annotated.', $parentObjectConfiguration->getConfigurationSourceHint(), $propertyName, $parentObjectConfiguration->getClassName()), 1297097815);
                    }
                    $objectName = $annotations[0];
                }
            }
            $objectConfiguration = $this->parseConfigurationArray($objectName, $objectNameOrConfiguration, $parentObjectConfiguration->getConfigurationSourceHint() . ', property "' . $propertyName . '"');
            $property = new ConfigurationProperty($propertyName, $objectConfiguration, ConfigurationProperty::PROPERTY_TYPES_OBJECT);
        } else {
            $property = new ConfigurationProperty($propertyName, $objectNameOrConfiguration, ConfigurationProperty::PROPERTY_TYPES_OBJECT);
        }
        return $property;
    }
protected function parsePropertyOfTypeObject ( $ propertyName , $ objectNameOrConfiguration , Configuration $ parentObjectConfiguration ) { if ( is_array ( $ objectNameOrConfiguration ) ) { if ( isset ( $ objectNameOrConfiguration [ 'name' ] ) ) { $ objectName = $ objectNameOrConfiguration [ 'name' ] ; unset ( $ objectNameOrConfiguration [ 'name' ] ) ; } else { if ( isset ( $ objectNameOrConfiguration [ 'factoryObjectName' ] ) ) { $ objectName = null ; } else { $ annotations = $ this -> reflectionService -> getPropertyTagValues ( $ parentObjectConfiguration -> getClassName ( ) , $ propertyName , 'var' ) ; if ( count ( $ annotations ) !== 1 ) { throw new InvalidObjectConfigurationException ( sprintf ( 'Object %s, for property "%s", contains neither object name, nor factory object name, and nor is the property properly @var - annotated.' , $ parentObjectConfiguration -> getConfigurationSourceHint ( ) , $ propertyName , $ parentObjectConfiguration -> getClassName ( ) ) , 1297097815 ) ; } $ objectName = $ annotations [ 0 ] ; } } $ objectConfiguration = $ this -> parseConfigurationArray ( $ objectName , $ objectNameOrConfiguration , $ parentObjectConfiguration -> getConfigurationSourceHint ( ) . ', property "' . $ propertyName . '"' ) ; $ property = new ConfigurationProperty ( $ propertyName , $ objectConfiguration , ConfigurationProperty :: PROPERTY_TYPES_OBJECT ) ; } else { $ property = new ConfigurationProperty ( $ propertyName , $ objectNameOrConfiguration , ConfigurationProperty :: PROPERTY_TYPES_OBJECT ) ; } return $ property ; }
Parses the configuration for properties of type OBJECT

@param string $propertyName Name of the property
@param mixed $objectNameOrConfiguration Value of the "object" section of the property configuration - either a string or an array
@param Configuration $parentObjectConfiguration The Configuration object this property belongs to
@return ConfigurationProperty A configuration property of type object
@throws InvalidObjectConfigurationException
Parses the configuration for properties of type OBJECT