getData(); switch ($column->getId()) { case 'name': switch (1) { case is_a($subscription, 'IndividualSubscription'): return ['label' => $subscription->getUserFullName()]; case is_a($subscription, 'InstitutionalSubscription'): $institution = Repo::institution()->get($subscription->getInstitutionId()); return ['label' => $institution->getLocalizedName()]; } assert(false); break; case 'email': assert(is_a($subscription, 'IndividualSubscription')); return ['label' => $subscription->getUserEmail()]; case 'subscriptionType': return ['label' => $subscription->getSubscriptionTypeName()]; case 'status': return ['label' => $subscription->getStatusString()]; case 'dateStart': return ['label' => $subscription->getDateStart()]; case 'dateEnd': return ['label' => $subscription->getDateEnd()]; case 'referenceNumber': return ['label' => $subscription->getReferenceNumber()]; } assert(false); } }