package vn.edu.rmit.examples;
import java.util.Date;
public class VacationBuilder implements AbstractBuilder {
private Vacation vacation = new Vacation();
@Override
public void buildDay(Date d) {
Day day = new Day();
day.setDate(d);
vacation.addDay(day);
}
@Override
public void addSpecialEvent(Date d, String event) {
Day day = vacation.getActivities().get(d);
if(null!= day) {
day.setSpecialEvent(event);
} else {
// create day first
buildDay(d);
addSpecialEvent(d, event);
}
}
@Override
public void addTickets(int num) {
this.vacation.setNumberOfPeople(num);
}
@Override
public Vacation getVacation() {
return this.vacation;
}
@Override
public void addHotel(Date d, Hotel h) {
Day day = vacation.getActivities().get(d);
if(null!= day) {
day.setHotel(h);
} else {
// create day first
buildDay(d);
addHotel(d, h);
}
}
@Override
public void addReservation(Date d, Resort r) {
Day day = vacation.getActivities().get(d);
if(null!= day) {
day.setResort(r);
} else {
// create day first
buildDay(d);
addReservation(d, r);
}
}
}