/** * @param SessionInterface $session * @param ObjectDataInterface $objectData */ public function __construct(SessionInterface $session, ObjectDataInterface $objectData) { $objectFactory = $session->getObjectFactory(); $properties = $objectData->getProperties(); // handle properties if (!empty($properties)) { $queryProperties = $objectFactory->convertQueryProperties($properties); foreach ($queryProperties as $queryProperty) { if ($queryProperty->getId() !== null) { $this->propertiesById[$queryProperty->getId()] = $queryProperty; } if ($queryProperty->getQueryName() !== null) { $this->propertiesByQueryName[$queryProperty->getQueryName()] = $queryProperty; } } } // handle allowable actions $allowableActions = $objectData->getAllowableActions(); if ($allowableActions !== null) { $this->allowableActions = $allowableActions; } // handle relationships $relationshipsObjectData = $objectData->getRelationships(); foreach ($relationshipsObjectData as $relationshipObjectData) { $relationship = $objectFactory->convertObject($relationshipObjectData, $session->getDefaultContext()); if ($relationship instanceof RelationshipInterface) { $this->relationships[] = $relationship; } } // handle renditions $renditionsData = $objectData->getRenditions(); foreach ($renditionsData as $renditionData) { $rendition = $objectFactory->convertRendition($objectData->getId(), $renditionData); if ($rendition instanceof RenditionInterface) { $this->renditions[] = $rendition; } } }