/**
* {@inheritDoc}
*/
public function getProperty($name)
{
$this->init();
if (isset($this->properties[$name])) {
return $this->properties[$name];
}
if (!$this->node) {
$this->node = $this->inspector->getNode($this->document);
}
$structureProperty = $this->structureMetadata->getProperty($name);
$contentTypeName = $structureProperty->getType();
$bridge = new StructureBridge($this->structureMetadata, $this->inspector, $this->legacyPropertyFactory, $this->document);
if ($structureProperty->isLocalized()) {
$locale = $this->inspector->getLocale($this->document);
$property = $this->legacyPropertyFactory->createTranslatedProperty($structureProperty, $locale, $bridge);
} else {
$property = $this->legacyPropertyFactory->createProperty($structureProperty);
}
$this->legacyProperties[$name] = $property;
$property->setStructure($bridge);
$contentType = $this->contentTypeManager->get($contentTypeName);
$contentType->read($this->node, $property, null, null, null);
$valueProperty = new PropertyValue($name, $property->getValue());
$this->properties[$name] = $valueProperty;
return $valueProperty;
}