/** * @param ActivityListProviderInterface $provider * @param object $entity * @param ActivityList $activityList */ protected function fillOwners(ActivityListProviderInterface $provider, $entity, ActivityList $activityList) { $oldActivityOwners = $activityList->getActivityOwners(); $newActivityOwners = $provider->getActivityOwners($entity, $activityList); $newActivityOwners = new ArrayCollection($newActivityOwners); foreach ($oldActivityOwners as $oldOwner) { if (!$oldOwner->isOwnerInCollection($newActivityOwners)) { $activityList->removeActivityOwner($oldOwner); } } if ($newActivityOwners) { foreach ($newActivityOwners as $newOwner) { if (!$newOwner->isOwnerInCollection($oldActivityOwners)) { $activityList->addActivityOwner($newOwner); } } } }