Implemented new race log event type for course changes

This commit is contained in:
Armin Zamani committed 2013-03-12 12:34:25 +01:00
1 parent 2ea27421d3
commit c6d96504ab
15 files changed
+441 -188

No files matched your search

@@ -1,86 +0,0 @@
package com.sap.sailing.racecommittee.app.domain.impl;
import java.util.ArrayList;
import java.util.List;
import com.sap.sailing.domain.base.ControlPoint;
import com.sap.sailing.domain.base.CourseData;
import com.sap.sailing.domain.base.Leg;
import com.sap.sailing.domain.base.Mark;
import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.common.impl.NamedImpl;
public class CourseDataImpl extends NamedImpl implements CourseData {
private static final long serialVersionUID = 1389216430392253253L;
private final List<Waypoint> waypoints;
public CourseDataImpl(String name) {
super(name);
this.waypoints = new ArrayList<Waypoint>();
}
@Override
public List<Leg> getLegs() {
// TODO Auto-generated method stub
return null;
}
@Override
public Iterable<Waypoint> getWaypoints() {
return this.waypoints;
}
@Override
public Waypoint getWaypointForControlPoint(ControlPoint controlPoint, int start) {
Waypoint result = null;
List<Waypoint> subList = this.waypoints.subList(start, this.waypoints.size() - 1);
for (Waypoint waypoint : subList) {
if (waypoint.getControlPoint().equals(controlPoint)) {
result = waypoint;
break;
}
}
return result;
}
@Override
public int getIndexOfWaypoint(Waypoint waypoint) {
return this.waypoints.indexOf(waypoint);
}
@Override
public Waypoint getFirstWaypoint() {
return this.waypoints.get(0);
}
@Override
public Waypoint getLastWaypoint() {
return this.waypoints.get(this.waypoints.size() - 1);
}
@Override
public void addWaypoint(int zeroBasedPosition, Waypoint waypointToAdd) {
this.waypoints.add(zeroBasedPosition, waypointToAdd);
}
@Override
public void removeWaypoint(int zeroBasedPosition) {
this.waypoints.remove(zeroBasedPosition);
}
@Override
public Iterable<Leg> getLegsAdjacentTo(Mark mark) {
// TODO Auto-generated method stub
return null;
}
@Override
public Leg getFirstLeg() {
// TODO Auto-generated method stub
return null;
}
}
@@ -1,39 +1,44 @@
package com.sap.sailing.racecommittee.app.domain.racelog.impl;
import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent;
import com.sap.sailing.domain.racelog.RaceLogEventVisitor;
import com.sap.sailing.domain.racelog.RaceLogFlagEvent;
import com.sap.sailing.domain.racelog.RaceLogPassChangeEvent;
import com.sap.sailing.domain.racelog.RaceLogRaceStatusEvent;
import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent;
import com.sap.sailing.racecommittee.app.domain.racelog.RaceLogChangedListener;
public class RaceLogChangedVisitor implements RaceLogEventVisitor {
private RaceLogChangedListener listener;
public RaceLogChangedVisitor(RaceLogChangedListener listener) {
this.listener = listener;
}
public void visit(RaceLogFlagEvent event) {
listener.eventAdded(event);
}
public void visit(RaceLogPassChangeEvent event) {
listener.eventAdded(event);
}
public void visit(RaceLogRaceStatusEvent event) {
listener.eventAdded(event);
}
public void visit(RaceLogStartTimeEvent event) {
listener.eventAdded(event);
}
public void visit(RaceLogCourseAreaChangedEvent event) {
listener.eventAdded(event);
}
}
package com.sap.sailing.racecommittee.app.domain.racelog.impl;
import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent;
import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent;
import com.sap.sailing.domain.racelog.RaceLogEventVisitor;
import com.sap.sailing.domain.racelog.RaceLogFlagEvent;
import com.sap.sailing.domain.racelog.RaceLogPassChangeEvent;
import com.sap.sailing.domain.racelog.RaceLogRaceStatusEvent;
import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent;
import com.sap.sailing.racecommittee.app.domain.racelog.RaceLogChangedListener;
public class RaceLogChangedVisitor implements RaceLogEventVisitor {
private RaceLogChangedListener listener;
public RaceLogChangedVisitor(RaceLogChangedListener listener) {
this.listener = listener;
}
public void visit(RaceLogFlagEvent event) {
listener.eventAdded(event);
}
public void visit(RaceLogPassChangeEvent event) {
listener.eventAdded(event);
}
public void visit(RaceLogRaceStatusEvent event) {
listener.eventAdded(event);
}
public void visit(RaceLogStartTimeEvent event) {
listener.eventAdded(event);
}
public void visit(RaceLogCourseAreaChangedEvent event) {
listener.eventAdded(event);
}
public void visit(RaceLogCourseDesignChangedEvent event) {
listener.eventAdded(event);
}
}
@@ -6,6 +6,8 @@ import java.util.Set;
import java.util.UUID;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.CourseData;
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
import com.sap.sailing.domain.racelog.PassAwareRaceLog;
@@ -101,6 +103,14 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
public TimePoint getFinishedTime() {
return finishedTimeFinder.getFinishedTime();
}
public void setCourseDesign(CourseData courseData) {
TimePoint eventTime = MillisecondsTimePoint.now();
RaceLogEvent event = RaceLogEventFactory.INSTANCE.createCourseDesignChangedEvent(eventTime, UUID.randomUUID(),
Collections.<Competitor> emptyList(), raceLog.getCurrentPassId(), courseData);
this.raceLog.add(event);
}
public void onRaceAborted(TimePoint eventTime) {
RaceLogEvent abortEvent = RaceLogEventFactory.INSTANCE.createRaceStatusEvent(eventTime, raceLog.getCurrentPassId(), RaceLogRaceStatus.UNSCHEDULED);
@@ -25,6 +25,7 @@ import com.sap.sailing.domain.base.CourseData;
import com.sap.sailing.domain.base.Gate;
import com.sap.sailing.domain.base.Mark;
import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.base.impl.CourseDataImpl;
import com.sap.sailing.domain.base.impl.GateImpl;
import com.sap.sailing.domain.base.impl.WaypointImpl;
import com.sap.sailing.domain.common.NauticalSide;
@@ -32,7 +33,6 @@ import com.sap.sailing.domain.common.impl.Util;
import com.sap.sailing.racecommittee.app.R;
import com.sap.sailing.racecommittee.app.data.InMemoryDataStore;
import com.sap.sailing.racecommittee.app.domain.RoundingDirection;
import com.sap.sailing.racecommittee.app.domain.impl.CourseDataImpl;
import com.sap.sailing.racecommittee.app.logging.ExLog;
import com.sap.sailing.racecommittee.app.ui.adapters.coursedesign.CourseElementListAdapter;
import com.sap.sailing.racecommittee.app.ui.adapters.coursedesign.CourseListDataElement;