+ protected function getContactIDs(): array {
+ if (isset($this->_contactIds)) {
+ return $this->_contactIds;
+ }
+ $contactIDSFromUrl = CRM_Utils_Request::retrieve('cid', 'CommaSeparatedIntegers', $this);
+ if (!empty($contactIDSFromUrl)) {
+ return explode(',', $contactIDSFromUrl);
+ }
+ // @todo Parameters shouldn't be needed and should be class member
+ // variables instead, set appropriately by each subclass.
+ return $this->getContactIDsFromComponent($this->_entityIds,
+ 'civicrm_case_contact', 'case_id'
+ );
+ }
+
+ /**
+ * Get the token processor schema required to list any tokens for this task.
+ *
+ * @return array
+ */
+ protected function getTokenSchema(): array {
+ return ['contactId', 'caseId'];
+ }
+