package org.ei.drishti.contract; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import java.util.List; public class Schedule { private String name; private final List<String> mileStones; private Schedule dependsOn; public Schedule(String name, List<String> mileStones) { this.name = name; this.mileStones = mileStones; this.dependsOn = null; } public Schedule withDependencyOn(Schedule dependsOn){ this.dependsOn = dependsOn; return this; } public String name() { return name; } public List<String> getMileStones() { return mileStones; } public boolean hasDependency(){ return dependsOn != null; } public boolean dependsOn(Schedule schedule){ if(dependsOn == null) return false; return dependsOn.equals(schedule); } public Schedule getDependencySchedule(){ return dependsOn; } public String getLastMilestone(){ return mileStones.get(mileStones.size()-1); } @Override public String toString() { return ToStringBuilder.reflectionToString(this); } @Override public boolean equals(Object o) { return EqualsBuilder.reflectionEquals(o, this, false, getClass()); } @Override public int hashCode() { return HashCodeBuilder.reflectionHashCode(17, 37, this, false, getClass()); } }