public function setOwner($user)
{
// Note: We need to do a bit of uuid juggling here, because we can't bind the workspaces Owner to a specific
// implementation, and creating entity relations via interfaces is not supported by Flow. Since the property
// mapper will call setOwner() with a string parameter (because the property $owner is string), but developers
// will want to use objects, we need to support both.
if ($user === null || $user === '') {
$this->owner = '';
return;
}
if (is_string($user) && preg_match('/^([a-f0-9]){8}-([a-f0-9]){4}-([a-f0-9]){4}-([a-f0-9]){4}-([a-f0-9]){12}$/', $user)) {
$this->owner = $user;
return;
}
if (!$user instanceof UserInterface) {
throw new \InvalidArgumentException(sprintf('$user must be an instance of UserInterface, %s given.', gettype($user)), 1447764244);
}
$this->owner = $this->persistenceManager->getIdentifierByObject($user);
}