/**
   * This method takes the activity and gets a list of all the org coordinators who are responsible
   * for the person or group to whose stream the activity was posted. Those will be the recipients.
   *
   * <p>{@inheritDoc}
   */
  @Override
  public Collection<NotificationDTO> translate(
      final long inActorId, final long inDestinationId, final long inActivityId) {
    // Get the activity
    ActivityDTO activity = activitiesMapper.execute(inActivityId, null);
    StreamEntityDTO stream = activity.getDestinationStream();
    NotificationType type =
        EntityType.PERSON == stream.getType()
            ? NotificationType.FLAG_PERSONAL_ACTIVITY
            : NotificationType.FLAG_GROUP_ACTIVITY;

    // Get the list of coordinators for the org which owns the entity (person/group) in whose stream
    // the activity
    // was posted
    List<Long> coordinatorIds =
        new ArrayList<Long>(coordinatorMapper.execute(activity.getRecipientParentOrgId()));

    NotificationDTO notif = new NotificationDTO(coordinatorIds, type, inActorId);
    notif.setDestination(activity.getRecipientParentOrgId(), EntityType.ORGANIZATION);
    notif.setActivity(inActivityId, activity.getBaseObjectType());

    return Collections.singletonList(notif);
  }