class AbstractNotificationServiceImpl implements AbstractNotificationService<T> {

    @Nonnull
    @Override
    public T getNotificationById(@Nonnull final Long notificationId) {
        assertNotificationIdNotNull(notificationId);
        LOGGER.debug("Getting notification for id - {}, class - {}", notificationId, getInstanceClass());
        final T notification = getRepository().findById(notificationId).orElseThrow(() -> new NotificationNotFoundForIdException(notificationId, getInstanceClass()));
        LOGGER.debug("Successfully retrieved notification for id - {}, notification class - {}", notificationId, getInstanceClass());
        return notification;
    }

    public  AbstractNotificationServiceImpl();

}