/** * Hydrate a resource value * * @param array $valueObject * @param Value $value */ protected function hydrateResource(array $valueObject, Value $value) { $value->setType(Value::TYPE_RESOURCE); $value->setValue(null); // set default $value->setLang(null); // set default $value->setUriLabel(null); // set default $valueResource = $this->adapter->getEntityManager()->find('Omeka\\Entity\\Resource', $valueObject['value_resource_id']); if (null === $valueResource) { throw new Exception\NotFoundException(sprintf($this->adapter->getTranslator()->translate('Resource not found with id %s.'), $valueObject['value_resource_id'])); } if ($valueResource instanceof Media) { $translator = $this->adapter->getTranslator(); $exception = new Exception\ValidationException(); $exception->getErrorStore()->addError('value', $translator->translate('A value resource cannot be Media.')); throw $exception; } $value->setValueResource($valueResource); }