entity = $entity; $this->valueFactory = $valueFactory; $this->extractor = $extractor; } /** * Get a field value object. */ public function get(string $field): ?object { if (!$this->isGettable($field)) { return null; } return $this->valueFactory->createFromEntity($this->entity, $field); } /** * Whether a field value object can be gotten. */ public function isGettable(string $field): bool { return $this->valueFactory->isCreatableFromEntity($this->entity, $field); } /** * Set a field value object. */ public function set(string $field, ?object $value): void { $attributeValueMap = $this->extractor->extract($this->entity->getEntityType(), $field, $value); $this->entity->set($attributeValueMap); } }