package be.swsb.fiazard.ordering.openinghours;
import be.swsb.fiazard.common.Id;
import be.swsb.fiazard.common.Representation;
import com.google.common.collect.Lists;
import java.time.DayOfWeek;
import java.util.List;
public class OpeningHourR implements Representation {
private Id id;
private DayOfWeek day;
private List<OpenPeriodR> hours;
private OpeningHourR() {
}
public String getId() {
return Id.asString(id);
}
public DayOfWeek getDay() {
return day;
}
public List<OpenPeriodR> getHours() {
return hours;
}
public static class Builder {
private Id id;
private DayOfWeek dayOfWeek;
private List<OpenPeriodR> hours = Lists.newArrayList();
public Builder() {
id = Id.random();
}
public OpeningHourR build() {
OpeningHourR openingHourR = new OpeningHourR();
openingHourR.id = id;
openingHourR.day = dayOfWeek;
openingHourR.hours = hours;
return openingHourR;
}
public Builder withId(Id id) {
this.id = id;
return this;
}
public Builder withDayOfWeek(DayOfWeek dayOfWeek) {
this.dayOfWeek = dayOfWeek;
return this;
}
public Builder withHours(List<OpenPeriodR> hours) {
this.hours.addAll(hours);
return this;
}
public Builder withHour(OpenPeriodR openPeriod) {
this.hours.add(openPeriod);
return this;
}
}
}