From 4e29bda14cf64e0bdb26f2951e3e438be05984bc Mon Sep 17 00:00:00 2001 From: Armin Zamani Date: Thu, 21 Mar 2013 22:11:57 +0100 Subject: [PATCH] fixed a couple of merge errors --- .../impl/DomainObjectFactoryImpl.java | 8 +- .../impl/MongoObjectFactoryImpl.java | 6 +- .../domain/base/impl/CourseDataImpl.java | 4 +- .../RaceLogCourseDesignChangedEvent.java | 4 +- .../domain/racelog/RaceLogEventFactory.java | 6 +- .../racelog/RaceLogEventRestoreFactory.java | 66 ++-- .../RaceLogCourseDesignChangedEventImpl.java | 8 +- .../racelog/impl/RaceLogEventFactoryImpl.java | 7 +- .../impl/RaceLogEventRestoreFactoryImpl.java | 116 +++---- .../domain/test/mock/MockedTrackedRace.java | 4 +- ...ockedTrackedRaceWithStartTimeAndRanks.java | 4 +- ...seDesignChangedByRaceCommitteeHandler.java | 10 +- .../tracking/CourseDesignChangedListener.java | 5 +- .../sailing/domain/tracking/TrackedRace.java | 4 +- .../tracking/impl/DynamicTrackedRaceImpl.java | 4 +- .../gwt/ui/test/MockedTrackedRace.java | 18 +- .../mongodb/test/RaceLogMongoDBTest.java | 8 +- ...ingAndRetrievingRaceLogInLeaderboards.java | 4 +- ...tStoringAndRetrievingRaceLogInRegatta.java | 4 +- ...ourseDesignChangedEventSerializerTest.java | 12 +- .../impl/CourseDataDeserializer.java | 18 +- ...gCourseDesignChangedEventDeserializer.java | 4 +- .../impl}/CourseBaseJsonSerializer.java | 70 ++-- .../coursedata/impl/CourseJsonSerializer.java | 14 +- ...LogCourseDesignChangedEventSerializer.java | 10 +- .../racelog/impl/RaceLogEventSerializer.java | 4 +- .../test/RaceLogReplicationTest.java | 10 +- .../racecommittee/app/data/DataManager.java | 52 +-- .../racecommittee/app/data/DataStore.java | 4 +- .../app/data/InMemoryDataStore.java | 93 ++--- .../app/data/OfflineDataManager.java | 42 +-- .../app/data/OnlineDataManager.java | 82 +---- .../app/data/parsers/EventsDataParser.java | 85 ++--- .../racecommittee/app/domain/ManagedRace.java | 4 +- .../app/domain/impl/FleetIdentifierImpl.java | 88 +++-- .../app/domain/impl/ManagedRaceImpl.java | 9 +- .../app/domain/state/RaceState.java | 6 +- .../app/domain/state/impl/RaceStateImpl.java | 6 +- .../LastPublishedCourseDesignFinder.java | 10 +- .../app/ui/activities/LoginActivity.java | 323 ++++++++---------- .../dialogs/CourseDesignDialogFragment.java | 20 +- 41 files changed, 527 insertions(+), 729 deletions(-) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/{impl/coursedata => coursedata/impl}/CourseBaseJsonSerializer.java (90%) diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index bb780bb6ad0..66c6138e9aa 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -24,7 +24,7 @@ import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.ControlPoint; import com.sap.sailing.domain.base.CourseArea; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.Fleet; @@ -1016,7 +1016,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } private RaceLogCourseDesignChangedEvent loadRaceLogCourseDesignChangedEvent(TimePoint createdAt, TimePoint timePoint, Serializable id, Integer passId, List competitors, DBObject dbObject) { - CourseData courseData = loadCourseData((BasicDBList) dbObject.get(FieldNames.RACE_LOG_COURSE_DESIGN.name())); + CourseBase courseData = loadCourseData((BasicDBList) dbObject.get(FieldNames.RACE_LOG_COURSE_DESIGN.name())); return raceLogEventFactory.createCourseDesignChangedEvent(createdAt, timePoint, id, competitors, passId, courseData); } @@ -1057,8 +1057,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return raceLogEventFactory.createRaceStatusEvent(createdAt, timePoint, id, competitors, passId, nextStatus); } - private CourseData loadCourseData(BasicDBList dbCourseList) { - CourseData courseData = new CourseDataImpl("TemplateCourse"); + private CourseBase loadCourseData(BasicDBList dbCourseList) { + CourseBase courseData = new CourseDataImpl("TemplateCourse"); int i = 0; for (Object object : dbCourseList) { DBObject dbObject = (DBObject) object; diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java index 0f88255d0d1..f0a2f1ee6eb 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java @@ -14,7 +14,7 @@ import com.mongodb.DBObject; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.ControlPoint; import com.sap.sailing.domain.base.CourseArea; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.Gate; @@ -633,11 +633,11 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogCourseDesignChangedEvent.class.getSimpleName()); - result.put(FieldNames.RACE_LOG_COURSE_DESIGN.name(), storeCourseData(courseDesignChangedEvent.getCourseDesign())); + result.put(FieldNames.RACE_LOG_COURSE_DESIGN.name(), storeCourseBase(courseDesignChangedEvent.getCourseDesign())); return result; } - private BasicDBList storeCourseData(CourseData courseData) { + private BasicDBList storeCourseBase(CourseBase courseData) { BasicDBList dbList = new BasicDBList(); for (Waypoint waypoint : courseData.getWaypoints()) { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseDataImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseDataImpl.java index edbdd014306..72686a16dbc 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseDataImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseDataImpl.java @@ -4,13 +4,13 @@ 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.CourseBase; 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 { +public class CourseDataImpl extends NamedImpl implements CourseBase { private static final long serialVersionUID = 1389216430392253253L; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogCourseDesignChangedEvent.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogCourseDesignChangedEvent.java index c26af741706..c15383bb7b6 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogCourseDesignChangedEvent.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogCourseDesignChangedEvent.java @@ -1,9 +1,9 @@ package com.sap.sailing.domain.racelog; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; public interface RaceLogCourseDesignChangedEvent extends RaceLogEvent { - CourseData getCourseDesign(); + CourseBase getCourseDesign(); } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java index 34d04adf988..7de230f6c50 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java @@ -4,7 +4,7 @@ import java.io.Serializable; import java.util.List; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.racelog.Flags; import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; @@ -28,6 +28,6 @@ public interface RaceLogEventFactory { RaceLogCourseAreaChangedEvent createCourseAreaChangedEvent(TimePoint timePoint, Serializable id, List competitors, int passId, Serializable courseAreaId); RaceLogCourseAreaChangedEvent createCourseAreaChangedEvent(TimePoint timePoint, int passId, Serializable courseAreaId); - RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint timePoint, Serializable id, List competitors, int passId, CourseData courseData); - RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint timePoint, int passId, CourseData courseData); + RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint timePoint, Serializable id, List competitors, int passId, CourseBase courseData); + RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint timePoint, int passId, CourseBase courseData); } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventRestoreFactory.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventRestoreFactory.java index ee9977903a8..54a552a2143 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventRestoreFactory.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventRestoreFactory.java @@ -1,33 +1,33 @@ -package com.sap.sailing.domain.racelog; - -import java.io.Serializable; -import java.util.List; - -import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.CourseData; -import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.racelog.Flags; -import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; -import com.sap.sailing.domain.racelog.impl.RaceLogEventRestoreFactoryImpl; - -public interface RaceLogEventRestoreFactory extends RaceLogEventFactory { - RaceLogEventRestoreFactory INSTANCE = new RaceLogEventRestoreFactoryImpl(); - - RaceLogFlagEvent createFlagEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, - List involvedBoats, int passId, Flags upperFlag, Flags lowerFlag, boolean isDisplayed); - - RaceLogStartTimeEvent createStartTimeEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, - List involvedBoats, int passId, TimePoint startTime); - - RaceLogRaceStatusEvent createRaceStatusEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, - List competitors, int passId, RaceLogRaceStatus nextStatus); - - RaceLogPassChangeEvent createPassChangeEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, - List competitors, int passId); - - RaceLogCourseAreaChangedEvent createCourseAreaChangedEvent(TimePoint createdAt, TimePoint logicalTimePoint, - Serializable id, List competitors, int passId, Serializable courseAreaId); - - RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint createdAt, TimePoint logicalTimePoint, - Serializable id, List competitors, int passId, CourseData courseData); -} +package com.sap.sailing.domain.racelog; + +import java.io.Serializable; +import java.util.List; + +import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.base.CourseBase; +import com.sap.sailing.domain.common.TimePoint; +import com.sap.sailing.domain.common.racelog.Flags; +import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; +import com.sap.sailing.domain.racelog.impl.RaceLogEventRestoreFactoryImpl; + +public interface RaceLogEventRestoreFactory extends RaceLogEventFactory { + RaceLogEventRestoreFactory INSTANCE = new RaceLogEventRestoreFactoryImpl(); + + RaceLogFlagEvent createFlagEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, + List involvedBoats, int passId, Flags upperFlag, Flags lowerFlag, boolean isDisplayed); + + RaceLogStartTimeEvent createStartTimeEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, + List involvedBoats, int passId, TimePoint startTime); + + RaceLogRaceStatusEvent createRaceStatusEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, + List competitors, int passId, RaceLogRaceStatus nextStatus); + + RaceLogPassChangeEvent createPassChangeEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, + List competitors, int passId); + + RaceLogCourseAreaChangedEvent createCourseAreaChangedEvent(TimePoint createdAt, TimePoint logicalTimePoint, + Serializable id, List competitors, int passId, Serializable courseAreaId); + + RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint createdAt, TimePoint logicalTimePoint, + Serializable id, List competitors, int passId, CourseBase courseData); +} diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogCourseDesignChangedEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogCourseDesignChangedEventImpl.java index cf892bd31d2..53ca4ff32e2 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogCourseDesignChangedEventImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogCourseDesignChangedEventImpl.java @@ -4,7 +4,7 @@ import java.io.Serializable; import java.util.List; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent; import com.sap.sailing.domain.racelog.RaceLogEventVisitor; @@ -12,10 +12,10 @@ import com.sap.sailing.domain.racelog.RaceLogEventVisitor; public class RaceLogCourseDesignChangedEventImpl extends RaceLogEventImpl implements RaceLogCourseDesignChangedEvent { private static final long serialVersionUID = 1565936170747420547L; - private CourseData courseDesign; + private CourseBase courseDesign; public RaceLogCourseDesignChangedEventImpl(TimePoint createdAt, - TimePoint pTimePoint, Serializable pId, List pInvolvedBoats, int pPassId, CourseData courseDesign) { + TimePoint pTimePoint, Serializable pId, List pInvolvedBoats, int pPassId, CourseBase courseDesign) { super(createdAt, pTimePoint, pId, pInvolvedBoats, pPassId); this.courseDesign = courseDesign; } @@ -26,7 +26,7 @@ public class RaceLogCourseDesignChangedEventImpl extends RaceLogEventImpl implem } @Override - public CourseData getCourseDesign() { + public CourseBase getCourseDesign() { return courseDesign; } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java index a4085d54193..1307fd0dad9 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java @@ -6,7 +6,7 @@ import java.util.List; import java.util.UUID; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.racelog.Flags; @@ -81,13 +81,12 @@ public class RaceLogEventFactoryImpl implements RaceLogEventFactory { @Override public RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint timePoint, Serializable id, - List competitors, int passId, CourseData courseData) { + List competitors, int passId, CourseBase courseData) { return new RaceLogCourseDesignChangedEventImpl(MillisecondsTimePoint.now(), timePoint, id, competitors, passId, courseData); } @Override - public RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint timePoint, int passId, - CourseData courseData) { + public RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint timePoint, int passId, CourseBase courseData) { return createCourseDesignChangedEvent(timePoint, UUID.randomUUID(), new ArrayList(), passId, courseData); } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventRestoreFactoryImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventRestoreFactoryImpl.java index 86472f5e5bc..09622893156 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventRestoreFactoryImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventRestoreFactoryImpl.java @@ -1,58 +1,58 @@ -package com.sap.sailing.domain.racelog.impl; - -import java.io.Serializable; -import java.util.List; - -import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.CourseData; -import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.racelog.Flags; -import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; -import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent; -import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent; -import com.sap.sailing.domain.racelog.RaceLogEventRestoreFactory; -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; - -public class RaceLogEventRestoreFactoryImpl extends RaceLogEventFactoryImpl implements RaceLogEventRestoreFactory { - - @Override - public RaceLogFlagEvent createFlagEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, - List involvedBoats, int passId, Flags upperFlag, Flags lowerFlag, boolean isDisplayed) { - return new RaceLogFlagEventImpl(createdAt, logicalTimePoint, id, involvedBoats, passId, upperFlag, lowerFlag, isDisplayed); - } - - @Override - public RaceLogStartTimeEvent createStartTimeEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, - List involvedBoats, int passId, TimePoint startTime) { - return new RaceLogStartTimeEventImpl(createdAt, logicalTimePoint, id, involvedBoats, passId, startTime); - } - - @Override - public RaceLogRaceStatusEvent createRaceStatusEvent(TimePoint createdAt, TimePoint logicalTimePoint, - Serializable id, List competitors, int passId, RaceLogRaceStatus nextStatus) { - return new RaceLogRaceStatusEventImpl(createdAt, logicalTimePoint, id, competitors, passId, nextStatus); - } - - @Override - public RaceLogPassChangeEvent createPassChangeEvent(TimePoint createdAt, TimePoint logicalTimePoint, - Serializable id, List competitors, int passId) { - return new RaceLogPassChangeEventImpl(createdAt, logicalTimePoint, id, competitors, passId); - } - - @Override - public RaceLogCourseAreaChangedEvent createCourseAreaChangedEvent(TimePoint createdAt, TimePoint logicalTimePoint, - Serializable id, List competitors, int passId, Serializable courseAreaId) { - return new RaceLogCourseAreaChangeEventImpl(createdAt, logicalTimePoint, id, competitors, passId, courseAreaId); - } - - @Override - public RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint createdAt, - TimePoint logicalTimePoint, Serializable id, List competitors, int passId, CourseData courseData) { - return new RaceLogCourseDesignChangedEventImpl(createdAt, logicalTimePoint, id, competitors, passId, courseData); - } - - -} +package com.sap.sailing.domain.racelog.impl; + +import java.io.Serializable; +import java.util.List; + +import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.base.CourseBase; +import com.sap.sailing.domain.common.TimePoint; +import com.sap.sailing.domain.common.racelog.Flags; +import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; +import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent; +import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent; +import com.sap.sailing.domain.racelog.RaceLogEventRestoreFactory; +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; + +public class RaceLogEventRestoreFactoryImpl extends RaceLogEventFactoryImpl implements RaceLogEventRestoreFactory { + + @Override + public RaceLogFlagEvent createFlagEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, + List involvedBoats, int passId, Flags upperFlag, Flags lowerFlag, boolean isDisplayed) { + return new RaceLogFlagEventImpl(createdAt, logicalTimePoint, id, involvedBoats, passId, upperFlag, lowerFlag, isDisplayed); + } + + @Override + public RaceLogStartTimeEvent createStartTimeEvent(TimePoint createdAt, TimePoint logicalTimePoint, Serializable id, + List involvedBoats, int passId, TimePoint startTime) { + return new RaceLogStartTimeEventImpl(createdAt, logicalTimePoint, id, involvedBoats, passId, startTime); + } + + @Override + public RaceLogRaceStatusEvent createRaceStatusEvent(TimePoint createdAt, TimePoint logicalTimePoint, + Serializable id, List competitors, int passId, RaceLogRaceStatus nextStatus) { + return new RaceLogRaceStatusEventImpl(createdAt, logicalTimePoint, id, competitors, passId, nextStatus); + } + + @Override + public RaceLogPassChangeEvent createPassChangeEvent(TimePoint createdAt, TimePoint logicalTimePoint, + Serializable id, List competitors, int passId) { + return new RaceLogPassChangeEventImpl(createdAt, logicalTimePoint, id, competitors, passId); + } + + @Override + public RaceLogCourseAreaChangedEvent createCourseAreaChangedEvent(TimePoint createdAt, TimePoint logicalTimePoint, + Serializable id, List competitors, int passId, Serializable courseAreaId) { + return new RaceLogCourseAreaChangeEventImpl(createdAt, logicalTimePoint, id, competitors, passId, courseAreaId); + } + + @Override + public RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint createdAt, + TimePoint logicalTimePoint, Serializable id, List competitors, int passId, CourseBase courseData) { + return new RaceLogCourseDesignChangedEventImpl(createdAt, logicalTimePoint, id, competitors, passId, courseData); + } + + +} diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java index 629ee5556df..3ebf547d4f0 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java @@ -7,7 +7,7 @@ import java.util.NavigableSet; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.CourseArea; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Leg; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceColumnListener; @@ -754,7 +754,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { } @Override - public void onCourseDesignChangedByRaceCommittee(CourseData courseDesign) { + public void onCourseDesignChangedByRaceCommittee(CourseBase courseDesign) { // TODO Auto-generated method stub } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java index 7df56769a79..b28b889ece8 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java @@ -6,7 +6,7 @@ import java.util.List; import java.util.NavigableSet; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Leg; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceDefinition; @@ -496,7 +496,7 @@ public class MockedTrackedRaceWithStartTimeAndRanks implements TrackedRace { } @Override - public void onCourseDesignChangedByRaceCommittee(CourseData courseDesign) { + public void onCourseDesignChangedByRaceCommittee(CourseBase courseDesign) { // TODO Auto-generated method stub } diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/CourseDesignChangedByRaceCommitteeHandler.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/CourseDesignChangedByRaceCommitteeHandler.java index 7a1d2b86079..6a28b71e341 100644 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/CourseDesignChangedByRaceCommitteeHandler.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/CourseDesignChangedByRaceCommitteeHandler.java @@ -18,14 +18,14 @@ import org.json.simple.JSONObject; import org.json.simple.JSONValue; import org.json.simple.parser.ParseException; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.tracking.CourseDesignChangedListener; import com.sap.sailing.domain.tractracadapter.CourseUpdateResponse; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.Helpers; import com.sap.sailing.server.gateway.serialization.JsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.ControlPointJsonSerializer; -import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseDataJsonSerializer; +import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseBaseJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.GateJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSerializer; @@ -33,7 +33,7 @@ import com.sap.sailing.server.gateway.serialization.coursedata.impl.WaypointJson public class CourseDesignChangedByRaceCommitteeHandler implements CourseDesignChangedListener { - private JsonSerializer courseSerializer; + private JsonSerializer courseSerializer; private JsonDeserializer courseUpdateDeserializer; private final URI courseDesignUpdateURI; private final Serializable regattaId; @@ -44,7 +44,7 @@ public class CourseDesignChangedByRaceCommitteeHandler implements CourseDesignCh this.regattaId = regattaId; this.raceId = raceId; this.courseSerializer = new CourseJsonSerializer( - new CourseDataJsonSerializer( + new CourseBaseJsonSerializer( new WaypointJsonSerializer( new ControlPointJsonSerializer( new MarkJsonSerializer(), @@ -53,7 +53,7 @@ public class CourseDesignChangedByRaceCommitteeHandler implements CourseDesignCh } @Override - public void courseDesignChanged(CourseData newCourseDesign) throws MalformedURLException, IOException { + public void courseDesignChanged(CourseBase newCourseDesign) throws MalformedURLException, IOException { JSONObject serializedCourseDesign = courseSerializer.serialize(newCourseDesign); String payload = serializedCourseDesign.toJSONString(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/CourseDesignChangedListener.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/CourseDesignChangedListener.java index e7d376cb441..ef5804371da 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/CourseDesignChangedListener.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/CourseDesignChangedListener.java @@ -3,10 +3,11 @@ package com.sap.sailing.domain.tracking; import java.io.IOException; import java.net.MalformedURLException; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; + public interface CourseDesignChangedListener { - void courseDesignChanged(CourseData newCourseDesign) throws MalformedURLException, IOException; + void courseDesignChanged(CourseBase newCourseDesign) throws MalformedURLException, IOException; } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java index f3042546781..c5312d085e8 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java @@ -7,7 +7,7 @@ import java.util.SortedSet; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Course; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Leg; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceDefinition; @@ -491,7 +491,7 @@ public interface TrackedRace extends Serializable { * called to propagate the course design to the tracking provider. * @param courseDesign the new course design to be published */ - void onCourseDesignChangedByRaceCommittee(CourseData courseDesign); + void onCourseDesignChangedByRaceCommittee(CourseBase courseDesign); /** * a setter for the listener on course design changes. The listener is mostly part of the tracking provider adapter. diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java index f74820d2661..e49ffe640c2 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java @@ -15,7 +15,7 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Leg; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceDefinition; @@ -654,7 +654,7 @@ DynamicTrackedRace, GPSTrackListener { } @Override - public void onCourseDesignChangedByRaceCommittee(CourseData newCourseDesign) { + public void onCourseDesignChangedByRaceCommittee(CourseBase newCourseDesign) { try { if (courseDesignChangedListener != null) { courseDesignChangedListener.courseDesignChanged(newCourseDesign); diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java index cd20a30e514..5317df4dbd5 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java @@ -5,22 +5,22 @@ import java.util.List; import java.util.NavigableSet; import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.domain.base.CourseArea; -import com.sap.sailing.domain.base.CourseData; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.base.CourseArea; +import com.sap.sailing.domain.base.CourseBase; +import com.sap.sailing.domain.base.Leg; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceColumnListener; +import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RegattaListener; -import com.sap.sailing.domain.base.Leg; -import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Series; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.Distance; -import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; -import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.Position; +import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; +import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.Tack; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WindSource; @@ -31,8 +31,8 @@ import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.tracking.CourseDesignChangedListener; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; -import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.DynamicTrackedRace; +import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.Maneuver; @@ -754,7 +754,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { } @Override - public void onCourseDesignChangedByRaceCommittee(CourseData courseDesign) { + public void onCourseDesignChangedByRaceCommittee(CourseBase courseDesign) { // TODO Auto-generated method stub } diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogMongoDBTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogMongoDBTest.java index 1b2937e9f69..16a7a235ae9 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogMongoDBTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogMongoDBTest.java @@ -8,7 +8,7 @@ import java.util.UUID; import junit.framework.Assert; import com.mongodb.MongoException; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Gate; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.impl.CourseDataImpl; @@ -33,7 +33,7 @@ public abstract class RaceLogMongoDBTest extends AbstractMongoDBTest { super(); } - protected void compareCourseData(CourseData storedCourse, CourseData loadedCourse) { + protected void compareCourseData(CourseBase storedCourse, CourseBase loadedCourse) { assertEquals(storedCourse.getFirstWaypoint().getPassingSide(), null); assertEquals(loadedCourse.getFirstWaypoint().getPassingSide(), null); Assert.assertTrue(storedCourse.getFirstWaypoint().getControlPoint() instanceof Gate); @@ -67,8 +67,8 @@ public abstract class RaceLogMongoDBTest extends AbstractMongoDBTest { assertEquals(storedMark.getType(), loadedMark.getType()); } - protected CourseData createCourseData() { - CourseData course = new CourseDataImpl("Test Course"); + protected CourseBase createCourseBase() { + CourseBase course = new CourseDataImpl("Test Course"); course.addWaypoint(0, new WaypointImpl(new GateImpl(UUID.randomUUID(), new MarkImpl(UUID.randomUUID(), "Black", MarkType.BUOY, "black", "round", "circle"), diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java index 3350b435de6..fc8f126c6b7 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java @@ -9,7 +9,7 @@ import org.junit.Before; import org.junit.Test; import com.mongodb.MongoException; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; @@ -193,7 +193,7 @@ public class TestStoringAndRetrievingRaceLogInLeaderboards extends RaceLogMongoD @Test public void testStoreAndRetrieveSimpleLeaderboardWithRaceLogCourseDesignChangedEvent() { - CourseData course = createCourseData(); + CourseBase course = createCourseBase(); RaceLogCourseDesignChangedEvent event = RaceLogEventFactory.INSTANCE.createCourseDesignChangedEvent(now, 0, course); addAndStoreRaceLogEvent(leaderboard, raceColumnName, event); diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java index 0b1992bda3f..b4a888c4433 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java @@ -14,7 +14,7 @@ import org.junit.Test; import com.mongodb.MongoException; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.CourseArea; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.RaceColumn; @@ -227,7 +227,7 @@ public class TestStoringAndRetrievingRaceLogInRegatta extends RaceLogMongoDBTest @Test public void testStoreAndRetrieveSimpleLeaderboardWithRaceLogCourseDesignChangedEvent() { - CourseData course = createCourseData(); + CourseBase course = createCourseBase(); RaceLogCourseDesignChangedEvent event = RaceLogEventFactory.INSTANCE.createCourseDesignChangedEvent(now, 0, course); addAndStoreRaceLogEvent(regatta, raceColumnName, event); diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java index 4906617fe51..3dc9bbc0439 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java @@ -10,7 +10,7 @@ import org.json.simple.JSONObject; import org.junit.Before; import org.junit.Test; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.Gate; import com.sap.sailing.domain.base.Mark; @@ -34,7 +34,7 @@ import com.sap.sailing.server.gateway.deserialization.coursedata.impl.MarkDeseri import com.sap.sailing.server.gateway.deserialization.coursedata.impl.WaypointDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.RaceLogCourseDesignChangedEventDeserializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.ControlPointJsonSerializer; -import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseDataJsonSerializer; +import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseBaseJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.GateJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.WaypointJsonSerializer; @@ -52,7 +52,7 @@ public class RaceLogCourseDesignChangedEventSerializerTest { public void setUp() { SharedDomainFactory factory = DomainFactory.INSTANCE; serializer = new RaceLogCourseDesignChangedEventSerializer(new CompetitorIdJsonSerializer(), - new CourseDataJsonSerializer(new WaypointJsonSerializer( + new CourseBaseJsonSerializer(new WaypointJsonSerializer( new ControlPointJsonSerializer( new MarkJsonSerializer(), new GateJsonSerializer( @@ -82,8 +82,8 @@ public class RaceLogCourseDesignChangedEventSerializerTest { } - protected CourseData createCourseData() { - CourseData course = new CourseDataImpl("Test Course"); + protected CourseBase createCourseData() { + CourseBase course = new CourseDataImpl("Test Course"); course.addWaypoint(0, new WaypointImpl(new GateImpl(UUID.randomUUID(), new MarkImpl(UUID.randomUUID(), "Black", MarkType.BUOY, "black", "round", "circle"), @@ -94,7 +94,7 @@ public class RaceLogCourseDesignChangedEventSerializerTest { return course; } - protected void compareCourseData(CourseData serializedCourse, CourseData deserializedCourse) { + protected void compareCourseData(CourseBase serializedCourse, CourseBase deserializedCourse) { assertEquals(serializedCourse.getFirstWaypoint().getPassingSide(), null); assertEquals(deserializedCourse.getFirstWaypoint().getPassingSide(), null); Assert.assertTrue(serializedCourse.getFirstWaypoint().getControlPoint() instanceof Gate); diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/coursedata/impl/CourseDataDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/coursedata/impl/CourseDataDeserializer.java index d7685b5d40b..b3982081551 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/coursedata/impl/CourseDataDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/coursedata/impl/CourseDataDeserializer.java @@ -6,17 +6,17 @@ import java.util.List; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.base.impl.CourseDataImpl; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; -import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseDataJsonSerializer; +import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseBaseJsonSerializer; /** * Deserializer for CourseData. */ -public class CourseDataDeserializer implements JsonDeserializer { +public class CourseDataDeserializer implements JsonDeserializer { private final WaypointDeserializer waypointDeserializer; @@ -25,9 +25,9 @@ public class CourseDataDeserializer implements JsonDeserializer { } @Override - public CourseData deserialize(JSONObject object) throws JsonDeserializationException { - String courseName = object.get(CourseDataJsonSerializer.FIELD_NAME).toString(); - JSONArray jsonWaypoints = (JSONArray) object.get(CourseDataJsonSerializer.FIELD_WAYPOINTS); + public CourseBase deserialize(JSONObject object) throws JsonDeserializationException { + String courseName = object.get(CourseBaseJsonSerializer.FIELD_NAME).toString(); + JSONArray jsonWaypoints = (JSONArray) object.get(CourseBaseJsonSerializer.FIELD_WAYPOINTS); List waypoints = new ArrayList(); for (Object waypointObject : jsonWaypoints) { @@ -36,12 +36,12 @@ public class CourseDataDeserializer implements JsonDeserializer { waypoints.add(waypoint); } - CourseData courseData = new CourseDataImpl(courseName); + CourseBase courseBase = new CourseDataImpl(courseName); for (int i = 0; i < waypoints.size(); i++) { - courseData.addWaypoint(i, waypoints.get(i)); + courseBase.addWaypoint(i, waypoints.get(i)); } - return courseData; + return courseBase; } } \ No newline at end of file diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogCourseDesignChangedEventDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogCourseDesignChangedEventDeserializer.java index 2a1ee7623cf..27a130aa734 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogCourseDesignChangedEventDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogCourseDesignChangedEventDeserializer.java @@ -6,7 +6,7 @@ import java.util.Collections; import org.json.simple.JSONObject; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; @@ -26,7 +26,7 @@ public class RaceLogCourseDesignChangedEventDeserializer extends BaseRaceLogEven throws JsonDeserializationException { JSONObject jsonCourseDesign = (JSONObject) object.get(RaceLogCourseDesignChangedEventSerializer.FIELD_COURSE_DESIGN); - CourseData courseData = courseDataDeserializer.deserialize(jsonCourseDesign); + CourseBase courseData = courseDataDeserializer.deserialize(jsonCourseDesign); return factory.createCourseDesignChangedEvent(timePoint, id, Collections. emptyList(), passId, courseData); } diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/coursedata/CourseBaseJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/coursedata/impl/CourseBaseJsonSerializer.java similarity index 90% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/coursedata/CourseBaseJsonSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/coursedata/impl/CourseBaseJsonSerializer.java index 40b78a838be..d23ac551295 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/coursedata/CourseBaseJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/coursedata/impl/CourseBaseJsonSerializer.java @@ -1,35 +1,35 @@ -package com.sap.sailing.server.gateway.serialization.impl.coursedata; - -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; - -import com.sap.sailing.domain.base.CourseBase; -import com.sap.sailing.domain.base.Waypoint; -import com.sap.sailing.server.gateway.serialization.JsonSerializer; - -public class CourseBaseJsonSerializer implements JsonSerializer { - public static final String FIELD_NAME = "name"; - public static final String FIELD_WAYPOINTS = "waypoints"; - - private final JsonSerializer waypointSerializer; - - public CourseBaseJsonSerializer(JsonSerializer waypointSerializer) { - this.waypointSerializer = waypointSerializer; - } - - @Override - public JSONObject serialize(CourseBase object) { - JSONObject result = new JSONObject(); - - result.put(FIELD_NAME, object.getName()); - - JSONArray waypoints = new JSONArray(); - for (Waypoint waypoint : object.getWaypoints()) { - waypoints.add(waypointSerializer.serialize(waypoint)); - } - result.put(FIELD_WAYPOINTS, waypoints); - - return result; - } - -} +package com.sap.sailing.server.gateway.serialization.coursedata.impl; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; + +import com.sap.sailing.domain.base.CourseBase; +import com.sap.sailing.domain.base.Waypoint; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; + +public class CourseBaseJsonSerializer implements JsonSerializer { + public static final String FIELD_NAME = "name"; + public static final String FIELD_WAYPOINTS = "waypoints"; + + private final JsonSerializer waypointSerializer; + + public CourseBaseJsonSerializer(JsonSerializer waypointSerializer) { + this.waypointSerializer = waypointSerializer; + } + + @Override + public JSONObject serialize(CourseBase object) { + JSONObject result = new JSONObject(); + + result.put(FIELD_NAME, object.getName()); + + JSONArray waypoints = new JSONArray(); + for (Waypoint waypoint : object.getWaypoints()) { + waypoints.add(waypointSerializer.serialize(waypoint)); + } + result.put(FIELD_WAYPOINTS, waypoints); + + return result; + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/coursedata/impl/CourseJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/coursedata/impl/CourseJsonSerializer.java index e9c386b4aa0..ef77eedfaee 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/coursedata/impl/CourseJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/coursedata/impl/CourseJsonSerializer.java @@ -2,23 +2,23 @@ package com.sap.sailing.server.gateway.serialization.coursedata.impl; import org.json.simple.JSONObject; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.server.gateway.serialization.JsonSerializer; -public class CourseJsonSerializer implements JsonSerializer { +public class CourseJsonSerializer implements JsonSerializer { public static final String FIELD_COURSE = "course"; - private final JsonSerializer courseDataSerializer; + private final JsonSerializer courseBaseSerializer; - public CourseJsonSerializer(JsonSerializer courseDataSerializer) { - this.courseDataSerializer = courseDataSerializer; + public CourseJsonSerializer(JsonSerializer courseBaseSerializer) { + this.courseBaseSerializer = courseBaseSerializer; } @Override - public JSONObject serialize(CourseData object) { + public JSONObject serialize(CourseBase object) { JSONObject result = new JSONObject(); - result.put(FIELD_COURSE, courseDataSerializer.serialize(object)); + result.put(FIELD_COURSE, courseBaseSerializer.serialize(object)); return result; } diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogCourseDesignChangedEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogCourseDesignChangedEventSerializer.java index 38965233510..0caf57b151a 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogCourseDesignChangedEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogCourseDesignChangedEventSerializer.java @@ -3,7 +3,7 @@ package com.sap.sailing.server.gateway.serialization.racelog.impl; import org.json.simple.JSONObject; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.server.gateway.serialization.JsonSerializer; @@ -13,13 +13,13 @@ public class RaceLogCourseDesignChangedEventSerializer extends BaseRaceLogEventS public static final String VALUE_CLASS = RaceLogCourseDesignChangedEvent.class.getSimpleName(); public static final String FIELD_COURSE_DESIGN = "courseDesign"; - private final JsonSerializer courseDataSerializer; + private final JsonSerializer courseBaseSerializer; public RaceLogCourseDesignChangedEventSerializer( JsonSerializer competitorSerializer, - JsonSerializer courseDataSerializer) { + JsonSerializer courseBaseSerializer) { super(competitorSerializer); - this.courseDataSerializer = courseDataSerializer; + this.courseBaseSerializer = courseBaseSerializer; } @Override @@ -32,7 +32,7 @@ public class RaceLogCourseDesignChangedEventSerializer extends BaseRaceLogEventS RaceLogCourseDesignChangedEvent courseChangedEvent = (RaceLogCourseDesignChangedEvent) object; JSONObject result = super.serialize(courseChangedEvent); - result.put(FIELD_COURSE_DESIGN, courseDataSerializer.serialize(courseChangedEvent.getCourseDesign())); + result.put(FIELD_COURSE_DESIGN, courseBaseSerializer.serialize(courseChangedEvent.getCourseDesign())); return result; } diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogEventSerializer.java index bf1f9612b9d..93f8f2f11e7 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogEventSerializer.java @@ -6,7 +6,7 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.server.gateway.serialization.JsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.ControlPointJsonSerializer; -import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseDataJsonSerializer; +import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseBaseJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.GateJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.WaypointJsonSerializer; @@ -22,7 +22,7 @@ public class RaceLogEventSerializer implements JsonSerializer { new RaceLogCourseAreaChangedEventSerializer(competitorSerializer), new RaceLogPassChangeEventSerializer(competitorSerializer), new RaceLogCourseDesignChangedEventSerializer(competitorSerializer, - new CourseDataJsonSerializer( + new CourseBaseJsonSerializer( new WaypointJsonSerializer( new ControlPointJsonSerializer( new MarkJsonSerializer(), diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java index e59dc996fab..24eac83907e 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java @@ -14,7 +14,7 @@ import org.junit.Before; import org.junit.Ignore; import org.junit.Test; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.Gate; import com.sap.sailing.domain.base.Mark; @@ -210,7 +210,7 @@ public class RaceLogReplicationTest extends AbstractServerReplicationTest { assertEquals(courseDesignChangedEvent.getPassId(), replicatedEvent.getPassId()); assertEquals(courseDesignChangedEvent.getTimePoint(), replicatedEvent.getTimePoint()); assertEquals(Util.size(courseDesignChangedEvent.getInvolvedBoats()), Util.size(replicatedEvent.getInvolvedBoats())); - compareCourseData(courseDesignChangedEvent.getCourseDesign(), replicatedEvent.getCourseDesign()); + compareCourseBase(courseDesignChangedEvent.getCourseDesign(), replicatedEvent.getCourseDesign()); } finally { replicaLog.unlockAfterRead(); } @@ -322,8 +322,8 @@ public class RaceLogReplicationTest extends AbstractServerReplicationTest { return masterLog; } - protected CourseData createCourseData() { - CourseData course = new CourseDataImpl("Test Course"); + protected CourseBase createCourseData() { + CourseBase course = new CourseDataImpl("Test Course"); course.addWaypoint(0, new WaypointImpl(new GateImpl(UUID.randomUUID(), new MarkImpl(UUID.randomUUID(), "Black", MarkType.BUOY, "black", "round", "circle"), @@ -334,7 +334,7 @@ public class RaceLogReplicationTest extends AbstractServerReplicationTest { return course; } - protected void compareCourseData(CourseData masterCourse, CourseData replicatedCourse) { + protected void compareCourseBase(CourseBase masterCourse, CourseBase replicatedCourse) { assertEquals(masterCourse.getFirstWaypoint().getPassingSide(), null); assertEquals(replicatedCourse.getFirstWaypoint().getPassingSide(), null); Assert.assertTrue(masterCourse.getFirstWaypoint().getControlPoint() instanceof Gate); diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/DataManager.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/DataManager.java index 914f0beb3b7..4fcc253ec4d 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/DataManager.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/DataManager.java @@ -1,26 +1,26 @@ -package com.sap.sailing.racecommittee.app.data; - -import com.sap.sailing.racecommittee.app.AppConstants; - -import android.content.Context; - -public abstract class DataManager implements ReadonlyDataManager { - - public static ReadonlyDataManager create(Context context) { - if (AppConstants.IS_DATA_OFFLINE) { - return new OfflineDataManager(InMemoryDataStore.INSTANCE); - } - return new OnlineDataManager(context, InMemoryDataStore.INSTANCE); - } - - protected DataStore dataStore; - - public DataManager(DataStore dataStore) { - this.dataStore = dataStore; - } - - public DataStore getDataStore() { - return dataStore; - } - -} +package com.sap.sailing.racecommittee.app.data; + +import com.sap.sailing.racecommittee.app.AppConstants; + +import android.content.Context; + +public abstract class DataManager implements ReadonlyDataManager { + + public static ReadonlyDataManager create(Context context) { + if (AppConstants.IS_DATA_OFFLINE) { + return new OfflineDataManager(InMemoryDataStore.INSTANCE); + } + return new OnlineDataManager(context, InMemoryDataStore.INSTANCE); + } + + protected DataStore dataStore; + + public DataManager(DataStore dataStore) { + this.dataStore = dataStore; + } + + public DataStore getDataStore() { + return dataStore; + } + +} diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/DataStore.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/DataStore.java index 7da9bdce520..41052c67121 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/DataStore.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/DataStore.java @@ -31,6 +31,6 @@ public interface DataStore { public boolean hasMark(Serializable id); public void addMark(Mark mark); - public CourseData getLastPublishedCourseDesign(); - public void setLastPublishedCourseDesign(CourseData courseData); + public CourseBase getLastPublishedCourseDesign(); + public void setLastPublishedCourseDesign(CourseBase courseData); } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/InMemoryDataStore.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/InMemoryDataStore.java index 31eec9ddff7..3cbdb2ba6ee 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/InMemoryDataStore.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/InMemoryDataStore.java @@ -14,17 +14,11 @@ import com.sap.sailing.racecommittee.app.utils.CollectionUtils; public enum InMemoryDataStore implements DataStore { INSTANCE; - public Collection getEvents() { - return eventsById.values(); - } private HashMap eventsById; private HashMap managedRaceById; private HashMap marksById; private CourseBase courseData; - public EventBase getEvent(Serializable id) { - return eventsById.get(id); - } private InMemoryDataStore() { this.eventsById = new HashMap(); this.managedRaceById = new HashMap(); @@ -41,71 +35,34 @@ public enum InMemoryDataStore implements DataStore { public Collection getEvents() { return eventsById.values(); } - public void addEvent(EventBase event) { - eventsById.put(event.getId(), event); - } - - /* - * * * * * * * * - * COURSE AREA * - * * * * * * * * - */ + public void addEvent(EventBase event) { + eventsById.put(event.getId(), event); + } - public Collection getCourseAreas(EventBase event) { - if (event.getVenue() != null) { - return CollectionUtils.newArrayList(event.getVenue().getCourseAreas()); - } - return null; - } + + public EventBase getEvent(Serializable id) { + return eventsById.get(id); + } public boolean hasEvent(Serializable id) { return eventsById.containsKey(id); } - public CourseArea getCourseArea(EventBase event, String name) { - Collection courseAreas = getCourseAreas(event); - if (courseAreas != null) { - for (CourseArea courseArea : courseAreas) { - if (courseArea.getName().equals(name)) { - return courseArea; - } - } - } - return null; - } - public CourseArea getCourseArea(Serializable id) { - for (EventBase event : eventsById.values()) { - for (CourseArea courseArea : getCourseAreas(event)) { - if (courseArea.getId().equals(id)) - return courseArea; - } - } - return null; - } + /* + * * * * * * * * + * COURSE AREA * + * * * * * * * * + */ - public boolean hasCourseArea(Serializable id) { - for (EventBase event : eventsById.values()) { - for (CourseArea courseArea : getCourseAreas(event)) { - if (courseArea.getId().equals(id)) - return true; - } - } - return false; - } + public Collection getCourseAreas(EventBase event) { + if (event.getVenue() != null) { + return CollectionUtils.newArrayList(event.getVenue().getCourseAreas()); + } + return null; + } - public void addCourseArea(EventBase event, CourseArea courseArea) { - if (event.getVenue() != null) { - event.getVenue().addCourseArea(courseArea); - } - } - - /* - * * * * * * * * - * MANAGED RACE * - * * * * * * * * - */ - public CourseArea getCourseArea(EventData event, String name) { + public CourseArea getCourseArea(EventBase event, String name) { Collection courseAreas = getCourseAreas(event); if (courseAreas != null) { for (CourseArea courseArea : courseAreas) { @@ -118,7 +75,7 @@ public enum InMemoryDataStore implements DataStore { } public CourseArea getCourseArea(Serializable id) { - for (EventData event : eventsById.values()) { + for (EventBase event : eventsById.values()) { for (CourseArea courseArea : getCourseAreas(event)) { if (courseArea.getId().equals(id)) return courseArea; @@ -128,7 +85,7 @@ public enum InMemoryDataStore implements DataStore { } public boolean hasCourseArea(Serializable id) { - for (EventData event : eventsById.values()) { + for (EventBase event : eventsById.values()) { for (CourseArea courseArea : getCourseAreas(event)) { if (courseArea.getId().equals(id)) return true; @@ -137,7 +94,7 @@ public enum InMemoryDataStore implements DataStore { return false; } - public void addCourseArea(EventData event, CourseArea courseArea) { + public void addCourseArea(EventBase event, CourseArea courseArea) { if (event.getVenue() != null) { event.getVenue().addCourseArea(courseArea); } @@ -192,12 +149,12 @@ public enum InMemoryDataStore implements DataStore { } @Override - public CourseData getLastPublishedCourseDesign() { + public CourseBase getLastPublishedCourseDesign() { return courseData; } - + @Override - public void setLastPublishedCourseDesign(CourseData courseData) { + public void setLastPublishedCourseDesign(CourseBase courseData) { this.courseData = courseData; } } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java index c09d6d0892f..4cd40699099 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java @@ -32,40 +32,6 @@ public class OfflineDataManager extends DataManager { private static boolean isInitialized = false; - private void fillDataStore(DataStore dataStore) { - dataStore.addEvent(new EventBaseImpl("Extreme Sailing Series 2012 (Cardiff)", "Cardiff", "", true, "DUMBUUIDA")); - dataStore.addEvent(new EventBaseImpl("Extreme Sailing Series 2012 (Nice)", "Nice", "", true, "DUMBUUIDB")); - dataStore.addEvent(new EventBaseImpl("Extreme Sailing Series 2012 (Rio)", "Rio", "", true, "DUMBUUIDC")); - EventBase newEvent = new EventBaseImpl("Extreme Sailing Series 2013 (Muscat)", "Muscat", "", true, "FIXUUID"); - newEvent.getVenue().addCourseArea(new CourseAreaImpl("Offshore", "FIXCAUUID1")); - newEvent.getVenue().addCourseArea(new CourseAreaImpl("Stadium", "FIXCAUUID2")); - dataStore.addEvent(newEvent); - - SeriesWithRows qualifying = new SeriesWithRowsImpl("Qualifying", false, null); - SeriesWithRows medal = new SeriesWithRowsImpl("Medal", true, null); - RaceGroup raceGroup = new RaceGroupImpl( - "ESS", - new BoatClassImpl("X40", false), - null, - Arrays.asList(qualifying, medal)); - - RaceLogEventFactory factory = new RaceLogEventFactoryImpl(); - PassAwareRaceLog log = new PassAwareRaceLogImpl(); - log.add(factory.createRaceStatusEvent( - new MillisecondsTimePoint(new Date().getTime() + 1), - 2, - RaceLogRaceStatus.SCHEDULED)); - - ManagedRace q1 = new ManagedRaceImpl( - new ManagedRaceIdentifierImpl( - "Q1", - new FleetImpl("Default"), - qualifying, - raceGroup), - log); - - log = new PassAwareRaceLogImpl(); - /*log.add(factory.createStartTimeEvent( public OfflineDataManager(DataStore dataStore) { super(dataStore); @@ -76,10 +42,10 @@ public class OfflineDataManager extends DataManager { } private void fillDataStore(DataStore dataStore) { - dataStore.addEvent(new EventDataImpl("Extreme Sailing Series 2012 (Cardiff)", "Cardiff", "", true, "DUMBUUIDA")); - dataStore.addEvent(new EventDataImpl("Extreme Sailing Series 2012 (Nice)", "Nice", "", true, "DUMBUUIDB")); - dataStore.addEvent(new EventDataImpl("Extreme Sailing Series 2012 (Rio)", "Rio", "", true, "DUMBUUIDC")); - EventData newEvent = new EventDataImpl("Extreme Sailing Series 2013 (Muscat)", "Muscat", "", true, "FIXUUID"); + dataStore.addEvent(new EventBaseImpl("Extreme Sailing Series 2012 (Cardiff)", "Cardiff", "", true, "DUMBUUIDA")); + dataStore.addEvent(new EventBaseImpl("Extreme Sailing Series 2012 (Nice)", "Nice", "", true, "DUMBUUIDB")); + dataStore.addEvent(new EventBaseImpl("Extreme Sailing Series 2012 (Rio)", "Rio", "", true, "DUMBUUIDC")); + EventBase newEvent = new EventBaseImpl("Extreme Sailing Series 2013 (Muscat)", "Muscat", "", true, "FIXUUID"); newEvent.getVenue().addCourseArea(new CourseAreaImpl("Offshore", "FIXCAUUID1")); newEvent.getVenue().addCourseArea(new CourseAreaImpl("Stadium", "FIXCAUUID2")); dataStore.addEvent(newEvent); diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java index 235e6be2b07..00ff934c444 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java @@ -50,48 +50,16 @@ public class OnlineDataManager extends DataManager { private Context context; - public Context getContext() { - return context; - } - - public void loadEvents(LoadClient> client) { - if (dataStore.getEvents().isEmpty()) { - reloadEvents(client); - } else { - client.onLoadSucceded(dataStore.getEvents()); - } - } OnlineDataManager(Context context, DataStore dataStore) { super(dataStore); this.context = context; } - public void addEvents(Collection events) { - for (EventBase event : events) { - dataStore.addEvent(event); - } - } + public Context getContext() { + return context; + } - protected void reloadEvents(LoadClient> client) { - DataParser> parser = new EventsDataParser( - new EventDataJsonDeserializer( - new VenueJsonDeserializer( - new CourseAreaJsonDeserializer()))); - DataHandler> handler = new EventsDataHandler(this, client); - - try { - new DataLoader>( - context, - URI.create(AppConstants.getURL(context) + "/sailingserver/rc/events"), - parser, - handler).forceLoad(); - } catch (MalformedURLException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - } - public void loadEvents(LoadClient> client) { + public void loadEvents(LoadClient> client) { if (dataStore.getEvents().isEmpty()) { reloadEvents(client); } else { @@ -99,45 +67,19 @@ public class OnlineDataManager extends DataManager { } } - public void loadCourseAreas( - final Serializable parentEventId, - final LoadClient> client) { - - if (dataStore.hasEvent(parentEventId)) { - EventBase event = dataStore.getEvent(parentEventId); - client.onLoadSucceded(dataStore.getCourseAreas(event)); - } else { - reloadEvents(new LoadClient>() { - public void onLoadSucceded(Collection data) { - if (dataStore.hasEvent(parentEventId)) { - EventBase event = dataStore.getEvent(parentEventId); - client.onLoadSucceded(dataStore.getCourseAreas(event)); - } else { - client.onLoadFailed(new DataLoadingException( - String.format("There was no event object found for id %s.", parentEventId))); - } - } - - public void onLoadFailed(Exception reason) { - client.onLoadFailed(new DataLoadingException( - String.format("There was no event object found for id %s. While reloading the events an error occured: %s", parentEventId, reason), reason)); - } - }); - } - } public void addEvents(Collection events) { for (EventBase event : events) { dataStore.addEvent(event); } } - protected void reloadEvents(LoadClient> client) { - DataParser> parser = new EventsDataParser(new EventDataJsonDeserializer( + protected void reloadEvents(LoadClient> client) { + DataParser> parser = new EventsDataParser(new EventDataJsonDeserializer( new VenueJsonDeserializer(new CourseAreaJsonDeserializer()))); - DataHandler> handler = new EventsDataHandler(this, client); + DataHandler> handler = new EventsDataHandler(this, client); try { - new DataLoader>(context, URI.create(AppConstants.getServerBaseURL(context) + new DataLoader>(context, URI.create(AppConstants.getServerBaseURL(context) + "/sailingserver/rc/events"), parser, handler).forceLoad(); } catch (MalformedURLException e) { e.printStackTrace(); @@ -149,13 +91,13 @@ public class OnlineDataManager extends DataManager { public void loadCourseAreas(final Serializable parentEventId, final LoadClient> client) { if (dataStore.hasEvent(parentEventId)) { - EventData event = dataStore.getEvent(parentEventId); + EventBase event = dataStore.getEvent(parentEventId); client.onLoadSucceded(dataStore.getCourseAreas(event)); } else { - reloadEvents(new LoadClient>() { - public void onLoadSucceded(Collection data) { + reloadEvents(new LoadClient>() { + public void onLoadSucceded(Collection data) { if (dataStore.hasEvent(parentEventId)) { - EventData event = dataStore.getEvent(parentEventId); + EventBase event = dataStore.getEvent(parentEventId); client.onLoadSucceded(dataStore.getCourseAreas(event)); } else { client.onLoadFailed(new DataLoadingException(String.format( diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/EventsDataParser.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/EventsDataParser.java index e8861d824c9..684515143de 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/EventsDataParser.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/EventsDataParser.java @@ -1,49 +1,36 @@ -package com.sap.sailing.racecommittee.app.data.parsers; - -import java.io.Reader; -import java.util.ArrayList; -import java.util.Collection; - -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.JSONValue; - -import com.sap.sailing.domain.base.EventBase; -import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; -import com.sap.sailing.server.gateway.deserialization.impl.Helpers; - -public class EventsDataParser implements DataParser> { - - private JsonDeserializer deserializer; - - public EventsDataParser(JsonDeserializer deserializer) { - this.deserializer = deserializer; - } - - public Collection parse(Reader reader) throws Exception { - Object parsedResult = JSONValue.parse(reader); - JSONArray jsonArray = Helpers.toJSONArraySafe(parsedResult); - Collection events = new ArrayList(); - - for (Object element : jsonArray) { - JSONObject json = Helpers.toJSONObjectSafe(element); - events.add(deserializer.deserialize(json)); - } - - return events; - } - - public Collection parse(Reader reader) throws Exception { - Object parsedResult = JSONValue.parseWithException(reader); - JSONArray jsonArray = Helpers.toJSONArraySafe(parsedResult); - Collection events = new ArrayList(); - - for (Object element : jsonArray) { - JSONObject json = Helpers.toJSONObjectSafe(element); - events.add(deserializer.deserialize(json)); - } - - return events; - } - -} +package com.sap.sailing.racecommittee.app.data.parsers; + +import java.io.Reader; +import java.util.ArrayList; +import java.util.Collection; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.JSONValue; + +import com.sap.sailing.domain.base.EventBase; +import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; +import com.sap.sailing.server.gateway.deserialization.impl.Helpers; + +public class EventsDataParser implements DataParser> { + + private JsonDeserializer deserializer; + + public EventsDataParser(JsonDeserializer deserializer) { + this.deserializer = deserializer; + } + + public Collection parse(Reader reader) throws Exception { + Object parsedResult = JSONValue.parse(reader); + JSONArray jsonArray = Helpers.toJSONArraySafe(parsedResult); + Collection events = new ArrayList(); + + for (Object element : jsonArray) { + JSONObject json = Helpers.toJSONObjectSafe(element); + events.add(deserializer.deserialize(json)); + } + + return events; + } + +} diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/ManagedRace.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/ManagedRace.java index c3dd0380cab..38ebf101d83 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/ManagedRace.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/ManagedRace.java @@ -1,6 +1,6 @@ package com.sap.sailing.racecommittee.app.domain; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.common.Named; import com.sap.sailing.domain.common.WithID; import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; @@ -36,5 +36,5 @@ public interface ManagedRace extends ManagedRaceIdentifier, Named, WithID { * the current course of the race * @return the course of the race */ - public CourseData getCourseDesign(); + public CourseBase getCourseDesign(); } \ No newline at end of file diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java index 54ed0c64b83..6bda6750114 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/FleetIdentifierImpl.java @@ -1,50 +1,38 @@ -package com.sap.sailing.racecommittee.app.domain.impl; - -import java.io.Serializable; - -import com.sap.sailing.domain.base.Fleet; -import com.sap.sailing.domain.base.SeriesBase; -import com.sap.sailing.domain.base.racegroup.RaceGroup; -import com.sap.sailing.racecommittee.app.domain.FleetIdentifier; - -public class FleetIdentifierImpl implements FleetIdentifier { - - private Fleet fleet; - private SeriesBase series; - private RaceGroup raceGroup; - - public FleetIdentifierImpl( - Fleet fleet, - SeriesBase series, - RaceGroup raceGroup) { - this.fleet = fleet; - this.series = series; - this.raceGroup = raceGroup; - } - - public FleetIdentifierImpl(Fleet fleet, SeriesData series, RaceGroup raceGroup) { - this.fleet = fleet; - this.series = series; - this.raceGroup = raceGroup; - } - - public SeriesBase getSeries() { - return series; - } - public Fleet getFleet() { - return fleet; - } - - public SeriesData getSeries() { - return series; - } - - public RaceGroup getRaceGroup() { - return raceGroup; - } - - public Serializable getId() { - return String.format("%s.%s.%s", getRaceGroup().getName(), getSeries().getName(), getFleet().getName()); - } - -} +package com.sap.sailing.racecommittee.app.domain.impl; + +import java.io.Serializable; + +import com.sap.sailing.domain.base.Fleet; +import com.sap.sailing.domain.base.SeriesBase; +import com.sap.sailing.domain.base.racegroup.RaceGroup; +import com.sap.sailing.racecommittee.app.domain.FleetIdentifier; + +public class FleetIdentifierImpl implements FleetIdentifier { + + private Fleet fleet; + private SeriesBase series; + private RaceGroup raceGroup; + + public FleetIdentifierImpl(Fleet fleet, SeriesBase series, RaceGroup raceGroup) { + this.fleet = fleet; + this.series = series; + this.raceGroup = raceGroup; + } + + public Fleet getFleet() { + return fleet; + } + + public SeriesBase getSeries() { + return series; + } + + public RaceGroup getRaceGroup() { + return raceGroup; + } + + public Serializable getId() { + return String.format("%s.%s.%s", getRaceGroup().getName(), getSeries().getName(), getFleet().getName()); + } + +} diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/ManagedRaceImpl.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/ManagedRaceImpl.java index b71bcc942dc..e238d1dfd82 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/ManagedRaceImpl.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/ManagedRaceImpl.java @@ -2,7 +2,7 @@ package com.sap.sailing.racecommittee.app.domain.impl; import java.io.Serializable; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.SeriesBase; import com.sap.sailing.domain.base.racegroup.RaceGroup; @@ -33,9 +33,6 @@ public class ManagedRaceImpl implements ManagedRace { this.state = state; } - public SeriesBase getSeries() { - return identifier.getSeries(); - } public Serializable getId() { return identifier.getId(); } @@ -52,7 +49,7 @@ public class ManagedRaceImpl implements ManagedRace { return identifier.getFleet(); } - public SeriesData getSeries() { + public SeriesBase getSeries() { return identifier.getSeries(); } @@ -77,7 +74,7 @@ public class ManagedRaceImpl implements ManagedRace { } @Override - public CourseData getCourseDesign() { + public CourseBase getCourseDesign() { return state.getCourseDesign(); } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/RaceState.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/RaceState.java index cd1efc4dd96..728f918c8fe 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/RaceState.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/RaceState.java @@ -1,6 +1,6 @@ package com.sap.sailing.racecommittee.app.domain.state; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; import com.sap.sailing.domain.racelog.RaceLog; @@ -47,7 +47,7 @@ public interface RaceState { * * @return the course data or null. */ - CourseData getCourseDesign(); + CourseBase getCourseDesign(); /** * Sets the current race's start time @@ -63,7 +63,7 @@ public interface RaceState { * @param new course data * to be set. */ - void setCourseDesign(CourseData newCourseData); + void setCourseDesign(CourseBase newCourseData); /** * Updates the race's status. diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java index 2fabc4d7c51..a4cad0b6eab 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java @@ -6,7 +6,7 @@ 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.CourseBase; import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; @@ -108,12 +108,12 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener { } @Override - public CourseData getCourseDesign() { + public CourseBase getCourseDesign() { return lastCourseDesignFinder.getLastCourseDesign(); } - public void setCourseDesign(CourseData newCourseData) { + public void setCourseDesign(CourseBase newCourseData) { TimePoint eventTime = MillisecondsTimePoint.now(); RaceLogEvent event = RaceLogEventFactory.INSTANCE.createCourseDesignChangedEvent(eventTime, UUID.randomUUID(), diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/LastPublishedCourseDesignFinder.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/LastPublishedCourseDesignFinder.java index 722acded796..03e47d82770 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/LastPublishedCourseDesignFinder.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/LastPublishedCourseDesignFinder.java @@ -1,6 +1,6 @@ package com.sap.sailing.racecommittee.app.domain.state.impl.analyzers; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent; import com.sap.sailing.domain.racelog.RaceLogEvent; @@ -12,8 +12,8 @@ public class LastPublishedCourseDesignFinder extends RaceLogAnalyzer { super(raceLog); } - public CourseData getLastCourseDesign() { - CourseData lastCourseData = null; + public CourseBase getLastCourseDesign() { + CourseBase lastCourseData = null; this.raceLog.lockForRead(); try { @@ -25,8 +25,8 @@ public class LastPublishedCourseDesignFinder extends RaceLogAnalyzer { return lastCourseData; } - private CourseData searchForLastCourseData() { - CourseData lastCourseData = null; + private CourseBase searchForLastCourseData() { + CourseBase lastCourseData = null; for (RaceLogEvent event : getAllEvents()) { if (event instanceof RaceLogCourseDesignChangedEvent) { diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/activities/LoginActivity.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/activities/LoginActivity.java index edcbc8af314..70ed0245ffd 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/activities/LoginActivity.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/activities/LoginActivity.java @@ -1,181 +1,142 @@ -package com.sap.sailing.racecommittee.app.ui.activities; - -import java.io.Serializable; - -import android.app.Fragment; -import android.app.FragmentTransaction; -import android.content.Intent; -import android.os.Bundle; -import android.view.View; -import android.view.Window; -import android.widget.Toast; - -import com.sap.sailing.domain.base.CourseArea; -import com.sap.sailing.domain.base.EventBase; -import com.sap.sailing.racecommittee.app.AppConstants; -import com.sap.sailing.racecommittee.app.R; -import com.sap.sailing.racecommittee.app.logging.ExLog; -import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.DialogFragmentButtonListener; -import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.LoginDialog; -import com.sap.sailing.racecommittee.app.ui.fragments.lists.CourseAreaListFragment; -import com.sap.sailing.racecommittee.app.ui.fragments.lists.EventListFragment; -import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.CourseAreaSelectedListenerHost; -import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.EventSelectedListenerHost; -import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.ItemSelectedListener; - -public class LoginActivity extends TwoPaneActivity implements EventSelectedListenerHost, - CourseAreaSelectedListenerHost, DialogFragmentButtonListener { - private final static String TAG = LoginActivity.class.getName(); - - private LoginDialog loginDialog; - private CourseArea selectedCourse; - - public LoginActivity() { - this.loginDialog = new LoginDialog(); - this.selectedCourse = null; - } - - /** Called when the activity is first created. */ - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS); - setContentView(R.layout.login_view); - setProgressBarIndeterminateVisibility(false); - - // on first create add event list fragment - if (savedInstanceState == null) { - addEventListFragment(); - } - } - - private void addEventListFragment() { - FragmentTransaction transaction = getFragmentManager().beginTransaction(); - transaction.add(R.id.leftContainer, new EventListFragment()); - transaction.setTransition(FragmentTransaction.TRANSIT_NONE); - transaction.commit(); - } - - private void addCourseAreaListFragment(Serializable eventId) { - Bundle args = new Bundle(); - args.putSerializable(AppConstants.EventIdTag, eventId); - - Fragment fragment = new CourseAreaListFragment(); - fragment.setArguments(args); - FragmentTransaction transaction = getFragmentManager().beginTransaction(); - transaction.setCustomAnimations(R.animator.slide_in, R.animator.slide_out); - transaction.replace(R.id.rightContainer, fragment); - transaction.commit(); - ExLog.i("LoginActivity", "CourseFragment created."); - } - - private ItemSelectedListener eventSelectionListener = new ItemSelectedListener() { - - public void itemSelected(Fragment sender, EventBase event) { - Serializable eventId = event.getId(); - ExLog.i(ExLog.EVENT_SELECTED, eventId.toString(), getBaseContext()); - showCourseAreaListFragment(eventId); - } - }; - // Login -> startRaceActivity(selectedCourse); - - private void addEventListFragment() { - FragmentTransaction transaction = getFragmentManager().beginTransaction(); - transaction.add(R.id.leftContainer, new EventListFragment()); - transaction.setTransition(FragmentTransaction.TRANSIT_NONE); - transaction.commit(); - } - public ItemSelectedListener getEventSelectionListener() { - return eventSelectionListener; - } - - private void showCourseAreaListFragment(Serializable eventId) { - Toast.makeText(LoginActivity.this, eventId.toString(), Toast.LENGTH_LONG).show(); - getRightLayout().setVisibility(View.VISIBLE); - addCourseAreaListFragment(eventId); - } - - private ItemSelectedListener courseAreaSelectionListener = new ItemSelectedListener() { - - private void addCourseAreaListFragment(Serializable eventId) { - Bundle args = new Bundle(); - args.putSerializable(AppConstants.EventIdTag, eventId); - - Fragment fragment = new CourseAreaListFragment(); - fragment.setArguments(args); - FragmentTransaction transaction = getFragmentManager().beginTransaction(); - transaction.setCustomAnimations(R.animator.slide_in, R.animator.slide_out); - transaction.replace(R.id.rightContainer, fragment); - transaction.commit(); - ExLog.i("LoginActivity", "CourseFragment created."); - } - - private ItemSelectedListener eventSelectionListener = new ItemSelectedListener() { - - public void itemSelected(Fragment sender, EventData event) { - Serializable eventId = event.getId(); - ExLog.i(ExLog.EVENT_SELECTED, eventId.toString(), getBaseContext()); - showCourseAreaListFragment(eventId); - } - }; - - public ItemSelectedListener getEventSelectionListener() { - return eventSelectionListener; - } - - private void showCourseAreaListFragment(Serializable eventId) { - Toast.makeText(LoginActivity.this, eventId.toString(), Toast.LENGTH_LONG).show(); - getRightLayout().setVisibility(View.VISIBLE); - addCourseAreaListFragment(eventId); - } - - private ItemSelectedListener courseAreaSelectionListener = new ItemSelectedListener() { - - public void itemSelected(Fragment sender, CourseArea courseArea) { - ExLog.i(TAG, "Starting view for " + courseArea.getName()); - ExLog.i(ExLog.COURSE_SELECTED, courseArea.getName(), getBaseContext()); - selectCourseArea(courseArea); - } - }; - - public ItemSelectedListener getCourseAreaSelectionListener() { - return courseAreaSelectionListener; - } - - private void selectCourseArea(CourseArea courseArea) { - selectedCourse = courseArea; - loginDialog.show(getFragmentManager(), "LoginDialog"); - } - - public void onDialogNegativeButton() { /* nothing here... */ - } - - public void onDialogPositiveButton() { - switch (loginDialog.getSelectedLoginType()) { - case OFFICER: - ExLog.i(TAG, "Communication with backend is active."); - AppConstants.setSendingActive(this, true); - break; - case VIEWER: - ExLog.i(TAG, "Communication with backend is inactive."); - AppConstants.setSendingActive(this, false); - break; - default: - Toast.makeText(this, "Invalid login type. Ignoring.", Toast.LENGTH_SHORT).show(); - return; - } - - if (selectedCourse == null) { - Toast.makeText(this, "The selected course was lost.", Toast.LENGTH_LONG).show(); - ExLog.e(TAG, "Course reference was not set - cannot start racing activity."); - return; - } - - Toast.makeText(this, selectedCourse.getId().toString(), Toast.LENGTH_LONG).show(); - Intent message = new Intent(this, RacingActivity.class); - message.putExtra(AppConstants.COURSE_AREA_UUID_KEY, selectedCourse.getId()); - fadeActivity(message); - } - -} +package com.sap.sailing.racecommittee.app.ui.activities; + +import java.io.Serializable; + +import android.app.Fragment; +import android.app.FragmentTransaction; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.Toast; + +import com.sap.sailing.domain.base.CourseArea; +import com.sap.sailing.domain.base.EventBase; +import com.sap.sailing.racecommittee.app.AppConstants; +import com.sap.sailing.racecommittee.app.R; +import com.sap.sailing.racecommittee.app.logging.ExLog; +import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.DialogFragmentButtonListener; +import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.LoginDialog; +import com.sap.sailing.racecommittee.app.ui.fragments.lists.CourseAreaListFragment; +import com.sap.sailing.racecommittee.app.ui.fragments.lists.EventListFragment; +import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.CourseAreaSelectedListenerHost; +import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.EventSelectedListenerHost; +import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.ItemSelectedListener; + +public class LoginActivity extends TwoPaneActivity implements EventSelectedListenerHost, + CourseAreaSelectedListenerHost, DialogFragmentButtonListener { + private final static String TAG = LoginActivity.class.getName(); + + private LoginDialog loginDialog; + private CourseArea selectedCourse; + + public LoginActivity() { + this.loginDialog = new LoginDialog(); + this.selectedCourse = null; + } + + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS); + setContentView(R.layout.login_view); + setProgressBarIndeterminateVisibility(false); + + // on first create add event list fragment + if (savedInstanceState == null) { + addEventListFragment(); + } + } + + // Login -> startRaceActivity(selectedCourse); + + private void addEventListFragment() { + FragmentTransaction transaction = getFragmentManager().beginTransaction(); + transaction.add(R.id.leftContainer, new EventListFragment()); + transaction.setTransition(FragmentTransaction.TRANSIT_NONE); + transaction.commit(); + } + + private void addCourseAreaListFragment(Serializable eventId) { + Bundle args = new Bundle(); + args.putSerializable(AppConstants.EventIdTag, eventId); + + Fragment fragment = new CourseAreaListFragment(); + fragment.setArguments(args); + FragmentTransaction transaction = getFragmentManager().beginTransaction(); + transaction.setCustomAnimations(R.animator.slide_in, R.animator.slide_out); + transaction.replace(R.id.rightContainer, fragment); + transaction.commit(); + ExLog.i("LoginActivity", "CourseFragment created."); + } + + private ItemSelectedListener eventSelectionListener = new ItemSelectedListener() { + + public void itemSelected(Fragment sender, EventBase event) { + Serializable eventId = event.getId(); + ExLog.i(ExLog.EVENT_SELECTED, eventId.toString(), getBaseContext()); + showCourseAreaListFragment(eventId); + } + }; + + public ItemSelectedListener getEventSelectionListener() { + return eventSelectionListener; + } + + private void showCourseAreaListFragment(Serializable eventId) { + Toast.makeText(LoginActivity.this, eventId.toString(), Toast.LENGTH_LONG).show(); + getRightLayout().setVisibility(View.VISIBLE); + addCourseAreaListFragment(eventId); + } + + private ItemSelectedListener courseAreaSelectionListener = new ItemSelectedListener() { + + public void itemSelected(Fragment sender, CourseArea courseArea) { + ExLog.i(TAG, "Starting view for " + courseArea.getName()); + ExLog.i(ExLog.COURSE_SELECTED, courseArea.getName(), getBaseContext()); + selectCourseArea(courseArea); + } + }; + + public ItemSelectedListener getCourseAreaSelectionListener() { + return courseAreaSelectionListener; + } + + private void selectCourseArea(CourseArea courseArea) { + selectedCourse = courseArea; + loginDialog.show(getFragmentManager(), "LoginDialog"); + } + + public void onDialogNegativeButton() { /* nothing here... */ + } + + public void onDialogPositiveButton() { + switch (loginDialog.getSelectedLoginType()) { + case OFFICER: + ExLog.i(TAG, "Communication with backend is active."); + AppConstants.setSendingActive(this, true); + break; + case VIEWER: + ExLog.i(TAG, "Communication with backend is inactive."); + AppConstants.setSendingActive(this, false); + break; + default: + Toast.makeText(this, "Invalid login type. Ignoring.", Toast.LENGTH_SHORT).show(); + return; + } + + if (selectedCourse == null) { + Toast.makeText(this, "The selected course was lost.", Toast.LENGTH_LONG).show(); + ExLog.e(TAG, "Course reference was not set - cannot start racing activity."); + return; + } + + Toast.makeText(this, selectedCourse.getId().toString(), Toast.LENGTH_LONG).show(); + Intent message = new Intent(this, RacingActivity.class); + message.putExtra(AppConstants.COURSE_AREA_UUID_KEY, selectedCourse.getId()); + fadeActivity(message); + } + +} diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/CourseDesignDialogFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/CourseDesignDialogFragment.java index 64d56e4f36a..284b21d96b4 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/CourseDesignDialogFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/CourseDesignDialogFragment.java @@ -22,7 +22,7 @@ import android.widget.ListView; import android.widget.Toast; import com.sap.sailing.domain.base.ControlPoint; -import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Gate; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Waypoint; @@ -159,7 +159,7 @@ public class CourseDesignDialogFragment extends RaceDialogFragment { public void onClick(View arg0) { try { - CourseData courseData = convertCourseElementsToACourseData(); + CourseBase courseData = convertCourseElementsToACourseData(); sendCourseDataAndDismiss(courseData); } catch (IllegalStateException ex) { Toast.makeText(getActivity(), "A right buoy is missing for a gate. Please select the right buoy.", Toast.LENGTH_LONG).show(); @@ -175,7 +175,7 @@ public class CourseDesignDialogFragment extends RaceDialogFragment { @Override public void onClick(View arg0) { - CourseData emptyCourse = new CourseDataImpl("Unpublished course design"); + CourseBase emptyCourse = new CourseDataImpl("Unpublished course design"); sendCourseDataAndDismiss(emptyCourse); } @@ -212,7 +212,7 @@ public class CourseDesignDialogFragment extends RaceDialogFragment { } private void fillPreviousCourseElementsInList() { - CourseData previousCourseData = InMemoryDataStore.INSTANCE.getLastPublishedCourseDesign(); + CourseBase previousCourseData = InMemoryDataStore.INSTANCE.getLastPublishedCourseDesign(); if (previousCourseData != null) { previousCourseElements.clear(); previousCourseElements.addAll(convertCourseDesignToCourseElements(previousCourseData)); @@ -226,7 +226,7 @@ public class CourseDesignDialogFragment extends RaceDialogFragment { courseElementAdapter.notifyDataSetChanged(); } - protected List convertCourseDesignToCourseElements(CourseData courseData) { + protected List convertCourseDesignToCourseElements(CourseBase courseData) { List elementList = new ArrayList(); for (Waypoint waypoint : courseData.getWaypoints()) { @@ -250,25 +250,25 @@ public class CourseDesignDialogFragment extends RaceDialogFragment { return elementList; } - protected void sendCourseDataAndDismiss(CourseData courseDesign) { + protected void sendCourseDataAndDismiss(CourseBase courseDesign) { sendCourseData(courseDesign); onPublish(); dismiss(); } - protected void sendCourseData(CourseData courseDesign) { + protected void sendCourseData(CourseBase courseDesign) { getRace().getState().setCourseDesign(courseDesign); saveChangedCourseDesignInCache(courseDesign); } - private void saveChangedCourseDesignInCache(CourseData courseDesign) { + private void saveChangedCourseDesignInCache(CourseBase courseDesign) { if (!Util.isEmpty(courseDesign.getWaypoints())) { InMemoryDataStore.INSTANCE.setLastPublishedCourseDesign(courseDesign); } } - protected CourseData convertCourseElementsToACourseData() throws IllegalStateException, IllegalArgumentException { - CourseData design = new CourseDataImpl("CourseTemplate"); + protected CourseBase convertCourseElementsToACourseData() throws IllegalStateException, IllegalArgumentException { + CourseBase design = new CourseDataImpl("CourseTemplate"); List waypoints = new ArrayList(); for (CourseListDataElement courseElement : courseElements) {