Package metier.theatre

Source Code of metier.theatre.OutilsTheatre

/**
*
*/
package metier.theatre;

import java.sql.SQLException;
import java.util.Collection;
import java.util.Iterator;

import data.reservation.Fauteuil;
import data.reservation.Reservation;
import data.reservation.Seance;
import data.theatre.Place;
import data.theatre.Zone;
import exceptions.metier.PlaceInexistanteException;
import factories.FabReservation;
import factories.FabTheatre;
import metier.GestionConnection;

/**
* @author Matej Hausenblas matej.hausenblas@gmail.com
*
*/
public class OutilsTheatre {
 
  private GestionConnection gc;

  public OutilsTheatre(){
    gc = new GestionConnection();
  }
 
 
 
  /**
   * Deletion d'un Fauteuil d'une Zone.
   * @param z Zone d'ou il faut supprimer la Place
   * @param f Fauteuil a supprimer, tel qu'on le recupere dans Reservation
   * @return boolean resultat de l'operation.
   * @throws PlaceInexistanteException Au cas ou la Place n'existe pas dans cette zone
   */
  public void removePlace(Zone z, Fauteuil f)
    throws PlaceInexistanteException{
    if( !z.removePlace(f.getRangee(), f.getNumero()) )
      throw new PlaceInexistanteException();
  }
 
 
  /**
   * Recuperation d'une image de Zone dont on a soustrait
   * les places occupees dans des Reservations existantes.
   * @param idZone String identifiant la Zone qu'on veut recuperer.
   * @return
   * @throws SQLException en cas de probleme de connexion a la BdD
   */
  public Zone getImageZonePlacesLibres(String idZone, String idSeance)
    throws SQLException{

    /* recuperation des fabriques necessaires */
    FabTheatre ft = FabTheatre.getInstance();
    FabReservation fr = FabReservation.getInstance();
   
    ft.setConnection(gc.getConnection());
    fr.setConnection(gc.getConnection());
   
    // creation d'une zone inoccupee
    Zone z = ft.parametrerZone(idZone);
   
    /* Deletion des places deja reservees de la zone.
     * On parcourt toutes les reservations concernant cette Zone et seance
     * Pour chaque reservation on enleve les Fauteuils occupes par celle-ci
     * dans la Zone resultat.
     */
    Collection lesReservations = fr.getLesReservations(idSeance, idZone);
    for(Iterator itRes = lesReservations.iterator(); itRes.hasNext();){
      Reservation r = (Reservation)itRes.next();
      Collection lesFauteuils = r.getLesFauteuils();
      System.out.println("INFO: Fauteuils de la reservation "+r.getIdReserv()+":\n"+lesFauteuils);
      for(Iterator itFauteuils = lesFauteuils.iterator();
        itFauteuils.hasNext();){
        Fauteuil f = (Fauteuil)itFauteuils.next();
        try{
          this.removePlace(z, f);
        }catch(PlaceInexistanteException pie){
          System.err.println("WARNING: tentative de supprimer une place " +
              "non existante dans la zone");
        }
      }
    }
   
    return z;
  }
 

}
TOP

Related Classes of metier.theatre.OutilsTheatre

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.