TP-programmation-orientee-o.../TP09/AgendaIndividuel.java
2023-06-20 21:02:09 +02:00

60 lines
1.5 KiB
Java

/**
* Définition d'un agenda individuel.
*/
public class AgendaIndividuel extends AgendaAbstrait {
/** Le texte des rendezVous */
private String[] rendezVous;
/**
* Créer un agenda vide (avec aucun rendez-vous).
*
* @param nom le nom de l'agenda
* @throws IllegalArgumentException si nom nul ou vide
*/
public AgendaIndividuel(String nom) throws IllegalArgumentException {
super(nom);
this.rendezVous = new String[Agenda.CRENEAU_MAX + 1];
// On gaspille une case (la première qui ne sera jamais utilisée)
// mais on évite de nombreux « creneau - 1 »
}
@Override
public void enregistrer(int creneau, String rdv) throws CreneauInvalideException, IllegalArgumentException, OccupeException {
super.verifierCreneauValide(creneau);
if (rdv == null || rdv.length() < 1) {
throw new IllegalArgumentException();
} else if (this.rendezVous[creneau] != null) {
throw new OccupeException();
} else {
this.rendezVous[creneau] = rdv;
}
}
@Override
public boolean annuler(int creneau) throws CreneauInvalideException {
super.verifierCreneauValide(creneau);
boolean modifie = this.rendezVous[creneau] != null;
this.rendezVous[creneau] = null;
return modifie;
}
@Override
public String getRendezVous(int creneau) throws CreneauInvalideException, LibreException {
super.verifierCreneauValide(creneau);
String rdv = this.rendezVous[creneau];
if (rdv == null) {
throw new LibreException();
} else {
return rdv;
}
}
}