mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 09:26:44 +00:00
use Race instead of raceID as construction argument for SwissTimingRaceTrackerImpl; formatting changes
Conflicts: java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingAdapterPersistenceImpl.java java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ScriptedStoreAndForwardTest.java
This commit is contained in:
Regular → Executable
+1
-5
@@ -31,18 +31,14 @@ public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPers
|
||||
|
||||
public SwissTimingAdapterPersistenceImpl(DB db, SwissTimingFactory swissTimingFactory) {
|
||||
super();
|
||||
|
||||
this.database = db;
|
||||
this.swissTimingFactory = swissTimingFactory;
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
private void init()
|
||||
{
|
||||
private void init() {
|
||||
DBCollection rawMessages = database.getCollection(CollectionNames.RAW_MESSAGES.name());
|
||||
rawMessages.ensureIndex(new BasicDBObject().append(FieldNames.MESSAGE_SEQUENCE_NUMBER.name(), 1));
|
||||
|
||||
|
||||
// ensure the required indexes for the collection of race specific messages
|
||||
DBCollection racesMessageCollection = database.getCollection(CollectionNames.RACES_MESSAGES.name());
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import com.sap.sailing.domain.swisstimingadapter.impl.DomainFactoryImpl;
|
||||
public interface DomainFactory {
|
||||
final static DomainFactory INSTANCE = new DomainFactoryImpl();
|
||||
|
||||
Event getOrCreateEvent(String raceID);
|
||||
Event getOrCreateEvent(Race race);
|
||||
|
||||
Nationality getOrCreateNationality(String nationalityName);
|
||||
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ public interface SwissTimingFactory {
|
||||
|
||||
SwissTimingConfiguration createSwissTimingConfiguration(String name, String hostname, int port);
|
||||
|
||||
SwissTimingRaceTracker createRaceTracker(String raceID, String hostname, int port, WindStore windStore, RaceSpecificMessageLoader messageLoader, TrackedEventRegistry trackedEventRegistry) throws InterruptedException, UnknownHostException, IOException, ParseException;
|
||||
SwissTimingRaceTracker createRaceTracker(String raceID, String hostname, int port, WindStore windStore, RaceSpecificMessageLoader messageLoader, DomainFactory domainFactory, TrackedEventRegistry trackedEventRegistry) throws InterruptedException, UnknownHostException, IOException, ParseException;
|
||||
|
||||
Race createRace(String raceId, String description, TimePoint startTime);
|
||||
|
||||
|
||||
+5
-4
@@ -17,6 +17,7 @@ import com.sap.sailing.domain.base.impl.NationalityImpl;
|
||||
import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.Race;
|
||||
|
||||
public class DomainFactoryImpl implements DomainFactory {
|
||||
private final Map<String, Event> raceIDToEventCache;
|
||||
@@ -30,11 +31,11 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Event getOrCreateEvent(String raceID) {
|
||||
Event result = raceIDToEventCache.get(raceID);
|
||||
public Event getOrCreateEvent(Race race) {
|
||||
Event result = raceIDToEventCache.get(race.getRaceID());
|
||||
if (result == null) {
|
||||
result = new EventImpl(raceID, null);
|
||||
raceIDToEventCache.put(raceID, result);
|
||||
result = new EventImpl(race.getDescription(), null);
|
||||
raceIDToEventCache.put(race.getRaceID(), result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
+3
-2
@@ -8,6 +8,7 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.base.TimePoint;
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.Race;
|
||||
import com.sap.sailing.domain.swisstimingadapter.RaceSpecificMessageLoader;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SailMasterConnector;
|
||||
@@ -55,9 +56,9 @@ public class SwissTimingFactoryImpl implements SwissTimingFactory {
|
||||
|
||||
@Override
|
||||
public SwissTimingRaceTracker createRaceTracker(String raceID, String hostname, int port, WindStore windStore,
|
||||
RaceSpecificMessageLoader messageLoader, TrackedEventRegistry trackedEventRegistry)
|
||||
RaceSpecificMessageLoader messageLoader, DomainFactory domainFactory, TrackedEventRegistry trackedEventRegistry)
|
||||
throws InterruptedException, UnknownHostException, IOException, ParseException {
|
||||
return new SwissTimingRaceTrackerImpl(raceID, hostname, port, this, messageLoader, trackedEventRegistry);
|
||||
return new SwissTimingRaceTrackerImpl(raceID, hostname, port, domainFactory, this, messageLoader, trackedEventRegistry);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+6
-3
@@ -16,6 +16,7 @@ import com.sap.sailing.domain.base.TimePoint;
|
||||
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||
import com.sap.sailing.domain.base.impl.EventImpl;
|
||||
import com.sap.sailing.domain.swisstimingadapter.Course;
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.Fix;
|
||||
import com.sap.sailing.domain.swisstimingadapter.Race;
|
||||
import com.sap.sailing.domain.swisstimingadapter.RaceSpecificMessageLoader;
|
||||
@@ -35,17 +36,19 @@ public class SwissTimingRaceTrackerImpl implements SwissTimingRaceTracker, SailM
|
||||
private final SailMasterConnector connector;
|
||||
private final String raceID;
|
||||
private final RaceSpecificMessageLoader messageLoader;
|
||||
private final DomainFactory domainFactory;
|
||||
private final TrackedEventRegistry trackedEventRegistry;
|
||||
|
||||
private RaceDefinition race;
|
||||
private Course course;
|
||||
private StartList startList;
|
||||
|
||||
protected SwissTimingRaceTrackerImpl(String raceID, String hostname, int port, SwissTimingFactory factory,
|
||||
RaceSpecificMessageLoader messageLoader, TrackedEventRegistry trackedEventRegistry)
|
||||
protected SwissTimingRaceTrackerImpl(String raceID, String hostname, int port, DomainFactory domainFactory,
|
||||
SwissTimingFactory factory, RaceSpecificMessageLoader messageLoader, TrackedEventRegistry trackedEventRegistry)
|
||||
throws InterruptedException, UnknownHostException, IOException, ParseException {
|
||||
this.connector = factory.getOrCreateSailMasterConnector(hostname, port, messageLoader);
|
||||
this.trackedEventRegistry = trackedEventRegistry;
|
||||
this.domainFactory = domainFactory;
|
||||
this.raceID = raceID;
|
||||
this.messageLoader = messageLoader;
|
||||
connector.addSailMasterListener(raceID, this);
|
||||
@@ -128,7 +131,7 @@ public class SwissTimingRaceTrackerImpl implements SwissTimingRaceTracker, SailM
|
||||
assert course != null;
|
||||
// now we can create the RaceDefinition and most other things
|
||||
Race race = messageLoader.getRace(raceID);
|
||||
Event event = new EventImpl(race.getDescription(), new BoatClassImpl("Unknown"));
|
||||
Event event = domainFactory.getOrCreateEvent(race);
|
||||
// TODO continue here by creating the Waypoint/ControlPoint objects, then the CourseImpl, the CompetitorImpl objects and then the RaceDefinition; afterwards, also create the tracking counterparts such as the TrackedRaceImpl and TrackedEventImpl
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,9 @@ public class RacingEventServiceImpl implements RacingEventService {
|
||||
*/
|
||||
private static final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
||||
|
||||
private final DomainFactory domainFactory;
|
||||
private final DomainFactory tractracDomainFactory;
|
||||
|
||||
private final com.sap.sailing.domain.swisstimingadapter.DomainFactory swissTimingDomainFactory;
|
||||
|
||||
private final WindTrackerFactory windTrackerFactory;
|
||||
|
||||
@@ -100,10 +102,11 @@ public class RacingEventServiceImpl implements RacingEventService {
|
||||
private final Map<Event, DynamicTrackedEvent> eventTrackingCache;
|
||||
|
||||
public RacingEventServiceImpl() {
|
||||
domainFactory = DomainFactory.INSTANCE;
|
||||
tractracDomainFactory = DomainFactory.INSTANCE;
|
||||
domainObjectFactory = DomainObjectFactory.INSTANCE;
|
||||
mongoObjectFactory = MongoObjectFactory.INSTANCE;
|
||||
swissTimingFactory = SwissTimingFactory.INSTANCE;
|
||||
swissTimingDomainFactory = com.sap.sailing.domain.swisstimingadapter.DomainFactory.INSTANCE;
|
||||
swissTimingAdapterPersistence = SwissTimingAdapterPersistence.INSTANCE;
|
||||
windTrackerFactory = ExpeditionWindTrackerFactory.getInstance();
|
||||
eventsByName = new HashMap<String, Event>();
|
||||
@@ -180,7 +183,7 @@ public class RacingEventServiceImpl implements RacingEventService {
|
||||
}
|
||||
|
||||
private DomainFactory getDomainFactory() {
|
||||
return domainFactory;
|
||||
return tractracDomainFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -233,7 +236,8 @@ public class RacingEventServiceImpl implements RacingEventService {
|
||||
Triple<String, String, Integer> key = new Triple<String, String, Integer>(raceID, hostname, port);
|
||||
RaceTracker tracker = raceTrackersByID.get(key);
|
||||
if (tracker == null) {
|
||||
tracker = getSwissTimingFactory().createRaceTracker(raceID, hostname, port, windStore, swissTimingAdapterPersistence, this);
|
||||
tracker = getSwissTimingFactory().createRaceTracker(raceID, hostname, port, windStore,
|
||||
swissTimingAdapterPersistence, swissTimingDomainFactory, this);
|
||||
raceTrackersByID.put(tracker.getID(), tracker);
|
||||
Set<RaceTracker> trackers = raceTrackersByEvent.get(tracker.getEvent());
|
||||
if (trackers == null) {
|
||||
|
||||
Reference in New Issue
Block a user