Scheduling Applications in Object-Oriented Programming
AdvancedCounter.java
import java.util.*;
public class AdvancedCounter implements MeetingOccurrenceCounter {
/**
* A selected day of the week for meeting. Default day is undefined
*/
private int dayOfWeek = 0;
/**
* List of vacation dates for meeting participants
*/
private List vacationDays = new ArrayList<>();
/**
* List of holiday days for meeting participants
*/
private List holidayDays = new ArrayList<>();
/**
* A setter method for a day of the week, when meeting occurs
* @param dayOfWeek An integer (java.util.Calendar constant), representing day of the week
*/
@Override
public void setDayOfTheWeek(int dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
/**
* A setter method for set vacations of meeting participants. Adds all vacation days to vacationDays list
* @param vacations List of Vacation instances, representing meeting participants vacations
*/
@Override
public void setVacations(List vacations) {
vacationDays.clear();
for (Vacation v : vacations) {
vacationDays.addAll(v.getDaysOff());
}
}
/**
* A setter method for set holidays of meeting participants. Adds all holiday days to holidayDays list
* @param holidays List of Holiday instances, representing meeting participants holidays
*/
@Override
public void setHolidays(List