/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.operation; import java.util.Date; /** * Cette classe repr�sente l'�volution de l'op�ration au cours du temps. * * <p> * Elle n'existe que pour les op�rations attach�es � une t�che. Elle n'existe pas pour * les op�rations de la table de param�trage. * </p> * * @author $Author: blazart $ * @version $Revision: 1.2 $ * */ public class OperationState { /** Etat d'une tache a faire */ public static final int TO_DO = 1; /** Etat d'une tache faite (tout est OK) */ public static final int DONE = 2; /** Etat d'une tache ayant echou� */ public static final int FAILED = 3; private int _state = OperationState.TO_DO; private Date _date = null; /** * Constructeur par d�faut. * * <p></p> */ public OperationState() {} /** * Constructeur avec initialisation. * * <p></p> * * @param date La date du changement d'etat * @param state Le nouvel etat */ public OperationState(Date date, int state) { setState(date, state); } /** * Retourne l'etat. * * @return The State value */ public int getState() { return _state; } /** * Retourne la date du changement d'etat. * * @return The Date value */ public Date getDate() { return _date; } /** * Change l'etat. * * @param date La date du changement d'etat * @param state Le nouvel etat * * @throws IllegalArgumentException TODO */ private void setState(Date date, int state) { // Precondition switch (state) { case TO_DO: if (date != null) { throw new IllegalArgumentException( "Bad Date (etat TO_DO doit avoir une date null)"); } break; case DONE: case FAILED: if (date == null) { throw new IllegalArgumentException( "L'�tat doit avoir une date non null"); } break; default: throw new IllegalArgumentException("Mauvais Identifiant d'etat"); } // Init _state = state; _date = date; } }