mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-26 23:46:36 +00:00
moved the competitor cache to the base DomainFactory
This commit is contained in:
+3
-6
@@ -55,7 +55,6 @@ import difflib.PatchFailedException;
|
||||
*/
|
||||
public class DomainFactoryImpl implements DomainFactory {
|
||||
private final Map<String, Event> raceIDToEventCache;
|
||||
private final Map<String, Competitor> boatIDToCompetitorCache;
|
||||
private final Map<Iterable<String>, ControlPoint> controlPointCache;
|
||||
private final Map<String, BoatClass> olympicClassesByID;
|
||||
private final BoatClass unknownBoatClass;
|
||||
@@ -64,7 +63,6 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
public DomainFactoryImpl(com.sap.sailing.domain.base.DomainFactory baseDomainFactory) {
|
||||
this.baseDomainFactory = baseDomainFactory;
|
||||
raceIDToEventCache = new HashMap<String, Event>();
|
||||
boatIDToCompetitorCache = new HashMap<String, Competitor>();
|
||||
controlPointCache = new HashMap<Iterable<String>, ControlPoint>();
|
||||
olympicClassesByID = new HashMap<String, BoatClass>();
|
||||
/*
|
||||
@@ -102,12 +100,12 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
|
||||
@Override
|
||||
public Competitor getCompetitorByBoatID(String boatID) {
|
||||
return boatIDToCompetitorCache.get(boatID);
|
||||
return baseDomainFactory.getExistingCompetitorById(boatID);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Competitor getOrCreateCompetitor(com.sap.sailing.domain.swisstimingadapter.Competitor competitor, BoatClass boatClass) {
|
||||
Competitor result = boatIDToCompetitorCache.get(competitor.getBoatID());
|
||||
Competitor result = getCompetitorByBoatID(competitor.getBoatID());
|
||||
if (result == null) {
|
||||
Boat boat = new BoatImpl(competitor.getName(), boatClass, competitor.getBoatID());
|
||||
List<Person> teamMembers = new ArrayList<Person>();
|
||||
@@ -116,8 +114,7 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
/* dateOfBirth */ null, teamMemberName.trim()));
|
||||
}
|
||||
Team team = new TeamImpl(competitor.getName(), teamMembers, /* coach */ null);
|
||||
result = new com.sap.sailing.domain.base.impl.CompetitorImpl(competitor.getBoatID(), competitor.getName(), team, boat);
|
||||
boatIDToCompetitorCache.put(competitor.getBoatID(), result);
|
||||
result = baseDomainFactory.createCompetitor(competitor.getBoatID(), competitor.getName(), team, boat);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
+8
-15
@@ -30,7 +30,6 @@ import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.base.Team;
|
||||
import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||
import com.sap.sailing.domain.base.impl.CompetitorImpl;
|
||||
import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.EventImpl;
|
||||
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
|
||||
@@ -80,9 +79,6 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
private final Map<ControlPoint, com.sap.sailing.domain.base.ControlPoint> controlPointCache =
|
||||
new HashMap<ControlPoint, com.sap.sailing.domain.base.ControlPoint>();
|
||||
|
||||
private final Map<com.tractrac.clientmodule.Competitor, com.sap.sailing.domain.base.Competitor> competitorCache =
|
||||
new HashMap<com.tractrac.clientmodule.Competitor, com.sap.sailing.domain.base.Competitor>();
|
||||
|
||||
private final Map<String, Person> personCache = new HashMap<String, Person>();
|
||||
|
||||
private final Map<String, Team> teamCache = new HashMap<String, Team>();
|
||||
@@ -167,18 +163,15 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
|
||||
@Override
|
||||
public Competitor getOrCreateCompetitor(com.tractrac.clientmodule.Competitor competitor) {
|
||||
synchronized (competitorCache) {
|
||||
Competitor result = competitorCache.get(competitor);
|
||||
if (result == null) {
|
||||
BoatClass boatClass = getOrCreateBoatClass(competitor.getCompetitorClass());
|
||||
Nationality nationality = getOrCreateNationality(competitor.getNationality());
|
||||
Team team = getOrCreateTeam(competitor.getName(), nationality);
|
||||
Boat boat = new BoatImpl(competitor.getShortName(), boatClass, competitor.getShortName());
|
||||
result = new CompetitorImpl(competitor.getId(), competitor.getName(), team, boat);
|
||||
competitorCache.put(competitor, result);
|
||||
}
|
||||
return result;
|
||||
Competitor result = baseDomainFactory.getExistingCompetitorById(competitor.getId());
|
||||
if (result == null) {
|
||||
BoatClass boatClass = getOrCreateBoatClass(competitor.getCompetitorClass());
|
||||
Nationality nationality = getOrCreateNationality(competitor.getNationality());
|
||||
Team team = getOrCreateTeam(competitor.getName(), nationality);
|
||||
Boat boat = new BoatImpl(competitor.getShortName(), boatClass, competitor.getShortName());
|
||||
result = baseDomainFactory.createCompetitor(competitor.getId(), competitor.getName(), team, boat);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.base.impl.DomainFactoryImpl;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
@@ -22,4 +24,8 @@ public interface DomainFactory {
|
||||
MarkPassing createMarkPassing(TimePoint timePoint, Waypoint waypoint, Competitor competitor);
|
||||
|
||||
BoatClass getOrCreateBoatClass(String name, boolean typicallyStartsUpwind);
|
||||
|
||||
Competitor getExistingCompetitorById(Serializable competitorId);
|
||||
|
||||
Competitor createCompetitor(Serializable id, String name, Team team, Boat boat);
|
||||
}
|
||||
|
||||
+18
@@ -1,9 +1,11 @@
|
||||
package com.sap.sailing.domain.base.impl;
|
||||
|
||||
import java.awt.TrayIcon.MessageType;
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Buoy;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
@@ -11,6 +13,7 @@ import com.sap.sailing.domain.base.ControlPoint;
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.base.Gate;
|
||||
import com.sap.sailing.domain.base.Nationality;
|
||||
import com.sap.sailing.domain.base.Team;
|
||||
import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
@@ -26,11 +29,14 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
private final Map<String, Buoy> buoyCache;
|
||||
|
||||
private final Map<String, BoatClass> boatClassCache;
|
||||
|
||||
private final Map<Serializable, Competitor> competitorCache;
|
||||
|
||||
public DomainFactoryImpl() {
|
||||
nationalityCache = new HashMap<String, Nationality>();
|
||||
buoyCache = new HashMap<String, Buoy>();
|
||||
boatClassCache = new HashMap<String, BoatClass>();
|
||||
competitorCache = new HashMap<Serializable, Competitor>();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -87,4 +93,16 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Competitor getExistingCompetitorById(Serializable competitorId) {
|
||||
return competitorCache.get(competitorId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Competitor createCompetitor(Serializable id, String name, Team team, Boat boat) {
|
||||
Competitor result = new CompetitorImpl(id, name, team, boat);
|
||||
competitorCache.put(id, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user