package rmblworx.tools.timey.persistence.dao;
import java.util.List;
import rmblworx.tools.timey.vo.AlarmDescriptor;
/*
* Copyright 2014-2015 Christian Raue
* MIT License http://opensource.org/licenses/mit-license.php
*/
/**
* Schnittstellenbeschreibung für das Datenzugriffobjekt zum persistieren von Alarm-Objekten.
* @author mmatthies
*/
public interface IAlarmDao {
/**
* Schreibt den Alarmzeitpunkt in die Datenbank.
*
* @param descriptor
* Der zu persistierende Alarmzeitpunkt.
* @return true wenn erfolgreich, sonst false.
*/
Boolean createAlarm(AlarmDescriptor descriptor);
/**
* Entfernt das {@link rmblworx.tools.timey.persistence.model.AlarmEntity}-Objekt aus der Datenbank.
*
* @param descriptor
* der zu entfernende Alarmzeitpunkt.
* @return true wenn erfolgreich, sonst false oder {@code null} wenn Alarmzeitpunkt nicht vorhanden.
*/
Boolean deleteAlarm(AlarmDescriptor descriptor);
/**
* Liefert alle Alarmzeitpunkte.
*
* @return unveränderliche Liste mit allen Alarmzeitpunkten.
*/
List<AlarmDescriptor> findAll();
/**
* Gibt Auskunft ob der Alarmzeitpunkt aktiviert ist.
*
* @param descriptor
* der Alarmzeitpunkt
* @return true wenn aktiviert sonst false oder {@code null} wenn Alarmzeitpunkt nicht vorhanden
*/
Boolean isActivated(AlarmDescriptor descriptor);
/**
* Ermöglicht das Aktivierung/ Deaktivierung des {@link rmblworx.tools.timey.persistence.model.AlarmEntity}-Objekts.
*
* @param descriptor
* der Alarmzeitpunkt
* @param isActivated
* true wenn der Alarm aktiviert werden soll, sonst false.
* @return true wenn erfolgreich sonst false oder {@code null} wenn Alarmzeitpunkt nicht vorhanden
*/
Boolean setIsActivated(AlarmDescriptor descriptor, Boolean isActivated);
}