Package metier.reservations

Source Code of metier.reservations.AnnulationValidation

/**
*
*/
package metier.reservations;

import java.sql.SQLException;
import java.util.Date;

import metier.GestionConnection;

import data.reservation.Reservation;
import exceptions.ReservationInexistanteException;
import exceptions.metier.ImpossibleTaskException;
import factories.FabReservation;


/**
* Class Métier permettant de gérer les cas d'utilisation annulation et validation.
*
*
* @author Ait Elhaj Brahim
* @author Matej Hausenblas
*
*/
public class AnnulationValidation {

  /* Gestion de la connection */
  private GestionConnection gc;
 
  /**
   * Création d'un objet métier pour la gestion du cas d'utilisation 1.
   *
   */
  public AnnulationValidation(){
     gc = new GestionConnection();
  }
 
  /**
   * Renvoie un objet réservation.
   *
   * @param idReservation L'id de la réservation
   * @return La réservation récupérée de la fabrique
   */
  public Reservation getReservation(String idReservation){
    /* Utilisation de la fabrique de théatre */
    FabReservation fr = FabReservation.getInstance();
   
    try{     
      fr.setConnection(gc.getConnection());
      //On récupére la réservation
      Reservation res = fr.getReservation(idReservation);
      return res;
     
    }catch(SQLException se){
      se.printStackTrace();
    }catch(NumberFormatException nfe){
      nfe.printStackTrace();
    }
   
    return null;
  }


  /**
   * Renvoie la date de validation d'une réservation
   *
   * @param idReservation L'identifiant de la réservation
   * @return La date de validation null si la réservation n'a pas été validée
   */
  public Date reservationValidee(String idReservation){
    FabReservation fr = FabReservation.getInstance();
    try{
      fr.setConnection(gc.getConnection());
      return fr.reservationValidee(idReservation);
      //Date dateConfirmation =
    }catch(SQLException se){
      se.printStackTrace();
    }
   
    return null;
  }
 
 
  /**
   * Annule toutes les Reservations expirées a la date donnée.
   *
   * @param dateOfTheDay Date courante en fonction de laquelle seront annulées ou pas les réservations
   * @throws SQLException Exception renvoyée en cas de problème avec la base de donnée.
   */
  public void annulerAnciennesReservations(Date dateOfTheDay) {
    FabReservation fr = FabReservation.getInstance();
    try{
      fr.setConnection(gc.getConnection())
      fr.annulerAnciennesReservations(dateOfTheDay);
    }catch(SQLException se){
      se.printStackTrace();
    }
  }
 
 
  /**
   * Annule un réservation sur la base de son identifiant
   *
   * @param id L'identifiant de la réservation à annuler
   *
   * @throws ImpossibleTaskException Tâche impossible à réaliser
   * @throws ReservationInexistanteException La réservation saisie n'existe pas 
   */
  public void annulerReservation(String id)
    throws ImpossibleTaskException, ReservationInexistanteException{
    FabReservation fr = FabReservation.getInstance();
    try{
      fr.setConnection(gc.getConnection());
      if(!fr.reservationExiste(id)){
        throw new ReservationInexistanteException("La reservation "
            +id+" n'existe pas");
      }
      fr.supprimerReservation(id);
    }catch(SQLException se){
      throw new ImpossibleTaskException(se.getMessage());
    }
  }


  /**
   * @param idReservation L'identifiant de la réservation
   * @param dateLimite La date limite de confirmation
   * @throws SQLException En cas de problème avec la base de donnée
   * @throws ReservationInexistanteException La réservation saisie n'existe pas
   */
  public void confirmerReservation(String idReservation, java.util.Date dateLimite)
    throws SQLException, ReservationInexistanteException{
   
    GestionConnection gcConfirmer = new GestionConnection();   
    // activation d'un fabrique de reservations
    FabReservation fr = FabReservation.getInstance();
    fr.setConnection(gcConfirmer.getConnection());
    /* on essaie la confirmation, si l'identifiant passe
     * en parametre est invalide, on recoit une exception fabrique,
     * et on lance une exception metier.
     */
    try{
      fr.confirmerReservation(idReservation, dateLimite);
      //On shutdown pour être sur que les changements sont pris en compte
      gc.shutDown();
    }catch(ReservationInexistanteException rie){
      throw new ReservationInexistanteException("METIER: "+rie.getMessage());
    }
  }
 
}
TOP

Related Classes of metier.reservations.AnnulationValidation

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.