class ZMSNotificationTaskFactory implements NotificationTaskFactory {

    @Override
    public List<NotificationTask> getNotificationTasks() {
        List<NotificationTask> notificationTasks = new ArrayList<>();
        int pendingRoleMemberLifespan = Integer.parseInt(System.getProperty(ZMSConsts.ZMS_PROP_PENDING_ROLE_MEMBER_LIFESPAN, ZMSConsts.ZMS_PENDING_ROLE_MEMBER_LIFESPAN_DEFAULT));
        String monitorIdentity = System.getProperty(ZMSConsts.ZMS_PROP_MONITOR_IDENTITY, ZMSConsts.SYS_AUTH_MONITOR);
        notificationTasks.add(new PendingRoleMembershipApprovalNotificationTask(dbService, pendingRoleMemberLifespan, monitorIdentity, userDomainPrefix));
        notificationTasks.add(new PendingGroupMembershipApprovalNotificationTask(dbService, pendingRoleMemberLifespan, monitorIdentity, userDomainPrefix));
        notificationTasks.add(new RoleMemberExpiryNotificationTask(dbService, userDomainPrefix));
        notificationTasks.add(new RoleMemberReviewNotificationTask(dbService, userDomainPrefix));
        notificationTasks.add(new GroupMemberExpiryNotificationTask(dbService, userDomainPrefix));
        return notificationTasks;
    }

    public  ZMSNotificationTaskFactory(DBService dbService, String userDomainPrefix);

}