package scrum.server.calendar;
import ilarkesto.base.time.Date;
import ilarkesto.base.time.Time;
import ilarkesto.fp.Predicate;
import scrum.server.project.Project;
public class SimpleEventDao extends GSimpleEventDao {
public SimpleEvent getSimpleEventByNumber(final int number, final Project project) {
return getEntity(new Predicate<SimpleEvent>() {
public boolean test(SimpleEvent t) {
return t.isNumber(number) && t.isProject(project);
}
});
}
@Override
public SimpleEvent newEntityInstance() {
SimpleEvent event = super.newEntityInstance();
event.setDate(Date.today());
return event;
}
public SimpleEvent postEvent(Project project, String label, Date date, Time time, Integer duration) {
SimpleEvent event = newEntityInstance();
event.setProject(project);
event.setLabel(label);
event.setDate(date);
event.setTime(time);
event.setDuration(duration);
saveEntity(event);
return event;
}
public void createTestEvent(Project project, int variant) {
switch (variant) {
case 1:
postEvent(project, "Review Meeting", Date.inDays(10), null, null);
break;
case 2:
postEvent(project, "Punishment Execution", Date.inDays(2), new Time(9, 0), 360);
break;
default:
postEvent(project, "Party", Date.inDays(2), new Time(8, 0), 30);
break;
}
}
}