package model;
import model.Date;
import model.exceptions.*;
/**
* CurrentDate.java
* @author Andie Hoffmann (andhoffm@uos.de)
* @date 12.09.2008
*
* Diese Klasse stellt statisch ein {@link Date}-Objekt zur Verfügung, das, je nach Konfiguration,
* entweder das aktuelle Datum, oder das bei Programmstart vom User eingegebene Datum enthält.
*/
public class CurrentDate
{
/**
* Das aktuelle Datum als {@link Date}-Objekt
*/
private static Date currentDate = null;
/**
* @return liefert das Datum als {@link Date}-Objekt
*/
public static Date get()
{
if (currentDate == null)
{
currentDate = new Date(); // falls nicht gesetzt, automatisch aktuelles Datum.
}
return currentDate;
}
/**
* @param newCurrentDate ist ein {@link Date}-Objekt, das im Programm als neues Datum gesetzt wird
* @throws CurrentDateException wird geworfen, wenn ein noch nicht existentes {@link CurrentDate}-Objekt
* abgefragt wird, oder das schon gesetzte {@link CurrentDate} nachträglich verändert werden soll
*/
public static void set(Date newCurrentDate) throws CurrentDateException
{
if (currentDate == null)
{
currentDate = newCurrentDate;
currentDate.setYear(currentDate.getYear());
}
else
throw new CurrentDateException("Zeit schon gesetzt");
}
/**
* Fragt ab, ob das {@link CurrentDate} schon gesetzt wurde
* @return True, wenn {@link CurrentDate} schon gesetzt wurde, False sonst
*/
public static boolean isSet()
{
return currentDate != null;
}
/**
*
*/
private static final long serialVersionUID = 1L;
}