package info.ozkan.vipera.business.notification; import info.ozkan.vipera.business.role.Role; import info.ozkan.vipera.dao.notification.NotificationSettingDao; import info.ozkan.vipera.entities.NotificationSetting; import java.util.List; import javax.annotation.security.RolesAllowed; import javax.inject.Inject; import javax.inject.Named; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.transaction.annotation.Transactional; /** * {@link NotificationSettingManager} arayüzünün gerçekleştirimi * * @author Ömer Özkan * */ @Named("notificationSettingManager") public class NotificationSettingManagerImpl implements NotificationSettingManager { /** * LOGGER */ private static final Logger LOGGER = LoggerFactory .getLogger(NotificationSettingManagerImpl.class); /** * Dao */ @Inject private NotificationSettingDao notificationSettingDao; /** * provider manager */ @Inject private NotificationProviderManager notificationProviderManager; /** * Ayarlar, her seferinde veritabanından sürekli sorgulamamak için */ private List<NotificationSetting> settings; /** * Sistem ayarlını dönderir. İlk değer çağırmada veritabanından sorgulanır. */ public List<NotificationSetting> getAll() { if (settings == null) { LOGGER.info("All notification settings loaded from database"); settings = notificationSettingDao.getAll(); } return settings; } @Transactional @RolesAllowed(Role.ROLE_ADMIN) public void saveAll(final List<NotificationSetting> notificationSettings) { settings = notificationSettings; notificationSettingDao.saveAll(notificationSettings); notificationProviderManager.setSettings(notificationSettings); } }