class NotificationsResource {

    @GET
    @Path("/notifications/")
    @Timed
    public Response listNotifications(@Context UriInfo uriInfo, @Context SecurityContext securityContext) {
        SecurityUtil.checkRole(authorizer, securityContext, Roles.ROLE_NOTIFICATION_USER);
        List<QueryParam> queryParams = new ArrayList<>();
        MultivaluedMap<String, String> uriInfoParams = uriInfo.getQueryParameters();
        Collection<Notification> notifications = null;
        if (!uriInfoParams.isEmpty()) {
            queryParams = WSUtils.buildQueryParameters(uriInfoParams);
        } else {
            LOG.info("Query params empty, will use default criteria to return notifications.");
        }
        notifications = notificationService.findNotifications(queryParams);
        if (notifications != null && !notifications.isEmpty()) {
            return WSUtils.respondEntities(notifications, OK);
        }

        throw EntityNotFoundException.byFilter(queryParams.toString());
    }

    public  NotificationsResource(StreamlineAuthorizer authorizer, NotificationService service);

}