package rmblworx.tools.timey.persistence.model;
import java.io.Serializable;
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/*
* Copyright 2014-2015 Christian Raue
* MIT License http://opensource.org/licenses/mit-license.php
*/
/**
* Modell eines Alarmzeitpunktes.
* @author mmatthies
*/
@Entity
@Table(name = "ALARM")
public final class AlarmEntity implements Serializable {
/**
* Serial-Version UID.
*/
private static final long serialVersionUID = -7172433465696734868L;
/**
* Referenz auf den Alarmzeitpunkt.
*/
@Column(nullable = false)
private Timestamp alarm;
/**
* Beschreibungstext zum Alarmzeitpunkt.
*/
@Column(nullable = true)
private String description;
/**
* Primärschluessel des Alarmzeitpunktes.
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
/**
* Referenz auf das Objekt das den Status kennzeichnet.
* <ul>
* <li>true wenn Zeitstempel aktiv.</li>
* <li>false wenn inaktiv.</li>
* </ul>
*/
@Column(nullable = false)
private Boolean isActivated;
/**
* Zeitpunkt an welchem der Alarm wiederholt werden soll.
*/
@Column(nullable = true)
private Timestamp snooze;
/**
* Pfad zum abzuspielenden Sound bei Eintritt des Alarmzeitpunktes.
*/
@Column(nullable = true)
private String sound;
/**
* Liefert den Alarmzeitpunkt.
*
* @return Zeitpunkt an welchem der Alarm auszulösen ist insofern aktiv.
*/
public Timestamp getAlarm() {
return this.alarm;
}
/**
* Liefert die Beschreibung zum Alarmzeitpunkt.
* @return die Beschreibung
*/
public String getDescription() {
return this.description;
}
/**
* Liefert die eineindeutige Id des Alarmzeitpunktes.
*
* @return Id des Alarm-Objektes
*/
public Long getId() {
return this.id;
}
/**
* Gibt Auskunft ob der Alarmzeitpunkt aktiv ist.
*
* @return true wenn aktiv, sonst false.
*/
public Boolean getIsActivated() {
return this.isActivated;
}
/**
* Liefert den Zeitpunkt, an welchem der Alarm wiederholt werden soll.
* @return Wiederholungszeitpunkt
*/
public Timestamp getSnooze() {
return this.snooze;
}
/**
* Liefert den Pfad zum Sound der bei Eintritt des Alarmzeitpunktes abgespielt werden soll.
*
* @return Abzuspielenden Sound inklusive Pfad
*/
public String getSound() {
return this.sound;
}
/**
* Setzt den Alarmzeitpunkt.
*
* @param alarm
* zu setzender Alarmzeitpunkt.
*/
public void setAlarm(final Timestamp alarm) {
this.alarm = alarm;
}
/**
* Setzt den Beschreibungstext zum ALarmzeitpunkt.
* @param description
* zu setzende Beschreibung
*/
public void setDescription(final String description) {
this.description = description;
}
/**
* Setzt die eineindeutige Id des Alarm-Objektes.
*
* @param id
* Id für dieses Objekt.
*/
public void setId(final Long id) {
this.id = id;
}
/**
* Ermöglicht das Setzen des Aktivierungsstatus.
*
* @param isActivated
* booleaschen Wert.
*/
public void setIsActivated(final Boolean isActivated) {
this.isActivated = isActivated;
}
/**
* Setzt den Zeitpunkt an welchem der Alarm wiederholt ausgelöst werden soll.
* @param snooze
* Der zu setzende Wiederholungszeitpunkt
*/
public void setSnooze(final Timestamp snooze) {
this.snooze = snooze;
}
/**
* Setzt den Pfad vom abzuspielenden Sound bei Alarmeintritt.
*
* @param sound
* Pfad zum Sound
*/
public void setSound(final String sound) {
this.sound = sound;
}
}