class AbstractPushNotificationRecipientServiceImpl implements AbstractPushNotificationRecipientService<T> {

    @Nonnull
    @Override
    public T getPushNotificationRecipientById(@Nonnull final Long recipientId) {
        assertPushNotificationRecipientIdNotNull(recipientId);
        LOGGER.debug("Getting push notification recipient for id - {}, class - {}", recipientId, getInstanceClass());
        final T recipient = getRepository().findById(recipientId).orElseThrow(() -> new PushNotificationRecipientNotFoundForIdException(recipientId, getInstanceClass()));
        LOGGER.debug("Successfully retrieved push notification recipient for id - {}, class - {}, recipient - {}", recipient.getId(), getInstanceClass(), recipient);
        return recipient;
    }

    public  AbstractPushNotificationRecipientServiceImpl();

}