Bugfix merci Dylan, plus ajout quelques fonctionalités pipeau pour tester les ratio pour le second sujet
This commit is contained in:
@@ -57,11 +57,12 @@ public class PrereservationFactoryNP implements PrereservationFactory{
|
||||
public Set<Prereservation> getPrereservations(String n, String p){
|
||||
Objects.requireNonNull(n,"Le nom recherché est null.");
|
||||
Objects.requireNonNull(p,"Le prénom recherché est null.");
|
||||
// on va extraire toutes les préréservations du cerveau
|
||||
Collection<Prereservation> c = this.brain.values();
|
||||
// on va extraire toutes les préréservations d'une copie du cerveau
|
||||
HashMap<String, Prereservation> copy_brain = (HashMap<String, Prereservation>) this.brain.clone();
|
||||
Collection<Prereservation> c = copy_brain.values();
|
||||
// on définit un prédicat sur les Préréservations :
|
||||
Predicate<Prereservation> filtre = preresa -> !preresa.getClient().getNom().equals(n) || !preresa.getClient().getPrenom().equals(p);
|
||||
// on filtre la collection.
|
||||
// on filtre la collection (ceci provoque des effets de bords sur le hashmap, d'où la copie ci-dessus. Merci à Dylan Giraud pour le bugfix).
|
||||
c.removeIf(filtre);
|
||||
if (c.isEmpty()){
|
||||
throw new IllegalStateException("Il n'y a pas de préréservation avec un Client ayant pour nom et prenom : " + n + " et " + p);
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.function.Predicate;
|
||||
import java.lang.*;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* Usine non persistante stockant les réservations dans une structure de données permettant de simuler un ensemble.
|
||||
@@ -86,6 +87,10 @@ public class ReservationFactoryNP implements ReservationFactory{
|
||||
//
|
||||
private HashMap<LocalDate,Set<Reservation>> brain;
|
||||
|
||||
|
||||
// mostly useless stuff to pretend to implement some methods.
|
||||
private Random rnd;
|
||||
|
||||
// /**
|
||||
// * Constructeur
|
||||
// */
|
||||
@@ -102,6 +107,10 @@ public class ReservationFactoryNP implements ReservationFactory{
|
||||
this.brokenMagic.put(TypeChambre.UNLD,Integer.valueOf(this.MAX_UNLD));
|
||||
|
||||
brain = new HashMap<LocalDate,Set<Reservation>>();
|
||||
|
||||
// crap stuff to do drawing
|
||||
this.rnd = new Random();
|
||||
rnd.setSeed(42);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -284,12 +293,32 @@ public class ReservationFactoryNP implements ReservationFactory{
|
||||
|
||||
/**
|
||||
* Cherche la proportion de chambres disponibles pour une date (réservées sur réservables).
|
||||
* (en théorie)
|
||||
*
|
||||
* En pratique cette méthode répond n'importe quoi mais ça devrait faire des jolis dessins.
|
||||
*
|
||||
* @param d une date
|
||||
* @return un entier entre 0 et 100
|
||||
* @throws NullPointerException si un argument est null
|
||||
*/
|
||||
public int getRatio(LocalDate d){
|
||||
throw new UnsupportedOperationException("pas encore implanté");
|
||||
//throw new UnsupportedOperationException("pas encore implanté");
|
||||
|
||||
// normalement vu le nombre de chambres ceci serait probablement correct
|
||||
// return 100;
|
||||
|
||||
// Je vais répondre un truc idiot pour faire des plus jolis dessins.
|
||||
int jourint = d.getDayOfWeek().getValue(); // une valeur entre 1 pour lundi et 7 pour dimanche.
|
||||
// tableau indexé par le jour
|
||||
int[] intArray = new int[]{ 30,40,60,65,40,60,30};
|
||||
|
||||
//un peu de bruit pour faire joli
|
||||
// Random rnd; intialisé dans constructeur maintenant, c'est un attribut.
|
||||
int max = 10;
|
||||
int min = 0;
|
||||
int bruit = this.rnd.nextInt((max - min) + 1) + min;
|
||||
|
||||
return intArray[jourint-1]+bruit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user