La classe fine ora è questa:
codice:
public abstract class Evento { private String nome;
private Calendar inizio;
private Calendar fine;
private String luogo;
public Evento(String nome, Calendar inizio, Calendar fine, String luogo) {
this.nome = nome;
this.inizio = inizio;
this.fine = fine;
this.luogo = luogo;
}
public String getNome() {
return nome;
}
public Calendar getInizio() {
return inizio;
}
public Calendar getFine() {
return fine;
}
public String getLuogo() {
return luogo;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setInizio(Calendar inizio) {
this.inizio = inizio;
}
public void setFine(Calendar fine) {
this.fine = fine;
}
public void setLuogo(String luogo) {
this.luogo = luogo;
}
}
Conseguentemente il metodo nuovoEvento della classe Agenda è:
codice:
public void nuovoEvento(String nome, String luogo, int giorno, int mese, int anno, int inizioH, int inizioM, int durata) { Calendar inizio = calendarize(giorno, mese, anno, inizioH, inizioM);
long fineMillis = inizio.getTimeInMillis() + durata*60000;
Calendar fine = new GregorianCalendar();
fine.setTimeInMillis(fineMillis);
Evento e = new Semplice(nome, inizio, fine, luogo);
if (verifica(e) == true) {
eventi.add(e);
}
}
dove calendarize(...) è solo un piccolo metodo che, dati i valori interi restituisce l'oggetto Calendar... diciamo che è stato per semplificare!