mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-25 21:43:49 +00:00
allow a competitor to be modified through the UpdateCompetitor operation
This commit is contained in:
1 parent
5068f0268a
commit
fe8bd57a19
30 files changed
+354
-185
No files matched your search
-1
@@ -7,5 +7,4 @@ public interface Competitor extends Named, WithID, IsManagedBySharedDomainFactor
|
|||||||
Team getTeam();
|
Team getTeam();
|
||||||
|
|
||||||
Boat getBoat();
|
Boat getBoat();
|
||||||
|
|
||||||
}
|
}
|
||||||
+12
-1
@@ -3,6 +3,9 @@ package com.sap.sailing.domain.base;
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicCompetitor;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.domain.common.MarkType;
|
import com.sap.sailing.domain.common.MarkType;
|
||||||
import com.sap.sailing.domain.common.NauticalSide;
|
import com.sap.sailing.domain.common.NauticalSide;
|
||||||
|
|
||||||
@@ -74,10 +77,18 @@ public interface SharedDomainFactory {
|
|||||||
|
|
||||||
Competitor getExistingCompetitorById(Serializable competitorId);
|
Competitor getExistingCompetitorById(Serializable competitorId);
|
||||||
|
|
||||||
Competitor getOrCreateCompetitor(Serializable competitorId, String name, Team team, Boat boat);
|
Competitor getOrCreateCompetitor(Serializable competitorId, String name, DynamicTeam team, DynamicBoat boat);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Same as {@link #getOrCreateCompetitor(Serializable, String, DynamicTeam, DynamicBoat)} but returns the writable
|
||||||
|
* specialization of the {@link Competitor} interface. Use with care because the setters offered by the <code>Dynamic...</code>
|
||||||
|
* subinterfaces don't automatically replicate or store the changes.
|
||||||
|
*/
|
||||||
|
DynamicCompetitor getOrCreateDynamicCompetitor(UUID competitorId, String name, DynamicTeam team, DynamicBoat boat);
|
||||||
|
|
||||||
CourseArea getOrCreateCourseArea(Serializable courseAreaId, String name);
|
CourseArea getOrCreateCourseArea(Serializable courseAreaId, String name);
|
||||||
|
|
||||||
CourseArea getExistingCourseAreaById(Serializable courseAreaId);
|
CourseArea getExistingCourseAreaById(Serializable courseAreaId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+7
-3
@@ -1,13 +1,12 @@
|
|||||||
package com.sap.sailing.domain.base.impl;
|
package com.sap.sailing.domain.base.impl;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.BoatClass;
|
import com.sap.sailing.domain.base.BoatClass;
|
||||||
import com.sap.sailing.domain.common.impl.NamedImpl;
|
import com.sap.sailing.domain.common.impl.NamedImpl;
|
||||||
|
|
||||||
public class BoatImpl extends NamedImpl implements Boat {
|
public class BoatImpl extends NamedImpl implements DynamicBoat {
|
||||||
private static final long serialVersionUID = 3489730487528955788L;
|
private static final long serialVersionUID = 3489730487528955788L;
|
||||||
private final BoatClass boatClass;
|
private final BoatClass boatClass;
|
||||||
private final String sailID;
|
private String sailID;
|
||||||
|
|
||||||
public BoatImpl(String name, BoatClass boatClass, String sailID) {
|
public BoatImpl(String name, BoatClass boatClass, String sailID) {
|
||||||
super(name);
|
super(name);
|
||||||
@@ -24,4 +23,9 @@ public class BoatImpl extends NamedImpl implements Boat {
|
|||||||
public String getSailID() {
|
public String getSailID() {
|
||||||
return sailID;
|
return sailID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSailId(String newSailId) {
|
||||||
|
this.sailID = newSailId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+18
-10
@@ -2,37 +2,45 @@ package com.sap.sailing.domain.base.impl;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.SharedDomainFactory;
|
import com.sap.sailing.domain.base.SharedDomainFactory;
|
||||||
import com.sap.sailing.domain.base.Team;
|
|
||||||
import com.sap.sailing.domain.common.impl.NamedImpl;
|
|
||||||
|
|
||||||
public class CompetitorImpl extends NamedImpl implements Competitor {
|
public class CompetitorImpl implements DynamicCompetitor {
|
||||||
private static final long serialVersionUID = 294603681016643157L;
|
private static final long serialVersionUID = 294603681016643157L;
|
||||||
private final Team team;
|
private final DynamicTeam team;
|
||||||
private final Boat boat;
|
private final DynamicBoat boat;
|
||||||
private final Serializable id;
|
private final Serializable id;
|
||||||
|
private String name;
|
||||||
|
|
||||||
public CompetitorImpl(Serializable id, String name, Team team, Boat boat) {
|
public CompetitorImpl(Serializable id, String name, DynamicTeam team, DynamicBoat boat) {
|
||||||
super(name);
|
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
this.name = name;
|
||||||
this.team = team;
|
this.team = team;
|
||||||
this.boat = boat;
|
this.boat = boat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setName(String newName) {
|
||||||
|
this.name = newName;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Serializable getId() {
|
public Serializable getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Team getTeam() {
|
public DynamicTeam getTeam() {
|
||||||
return team;
|
return team;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boat getBoat() {
|
public DynamicBoat getBoat() {
|
||||||
return boat;
|
return boat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package com.sap.sailing.domain.base.impl;
|
||||||
|
|
||||||
|
import com.sap.sailing.domain.base.Boat;
|
||||||
|
|
||||||
|
public interface DynamicBoat extends Boat {
|
||||||
|
void setSailId(String newSailId);
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
package com.sap.sailing.domain.base.impl;
|
||||||
|
|
||||||
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
|
import com.sap.sailing.domain.common.Renamable;
|
||||||
|
|
||||||
|
public interface DynamicCompetitor extends Competitor, Renamable {
|
||||||
|
DynamicBoat getBoat();
|
||||||
|
DynamicTeam getTeam();
|
||||||
|
}
|
||||||
Executable
+8
@@ -0,0 +1,8 @@
|
|||||||
|
package com.sap.sailing.domain.base.impl;
|
||||||
|
|
||||||
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
|
import com.sap.sailing.domain.base.Person;
|
||||||
|
|
||||||
|
public interface DynamicPerson extends Person {
|
||||||
|
void setNationality(Nationality newNationality);
|
||||||
|
}
|
||||||
Executable
+8
@@ -0,0 +1,8 @@
|
|||||||
|
package com.sap.sailing.domain.base.impl;
|
||||||
|
|
||||||
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
|
import com.sap.sailing.domain.base.Team;
|
||||||
|
|
||||||
|
public interface DynamicTeam extends Team {
|
||||||
|
void setNationality(Nationality newNationality);
|
||||||
|
}
|
||||||
+7
-3
@@ -4,12 +4,11 @@ import java.io.InputStream;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Nationality;
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
import com.sap.sailing.domain.base.Person;
|
|
||||||
import com.sap.sailing.domain.common.impl.NamedImpl;
|
import com.sap.sailing.domain.common.impl.NamedImpl;
|
||||||
|
|
||||||
public class PersonImpl extends NamedImpl implements Person {
|
public class PersonImpl extends NamedImpl implements DynamicPerson {
|
||||||
private static final long serialVersionUID = -2104903799224233508L;
|
private static final long serialVersionUID = -2104903799224233508L;
|
||||||
private final Nationality nationality;
|
private Nationality nationality;
|
||||||
private final Date dateOfBirth;
|
private final Date dateOfBirth;
|
||||||
private final String description;
|
private final String description;
|
||||||
|
|
||||||
@@ -29,6 +28,11 @@ public class PersonImpl extends NamedImpl implements Person {
|
|||||||
public Nationality getNationality() {
|
public Nationality getNationality() {
|
||||||
return nationality;
|
return nationality;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNationality(Nationality newNationality) {
|
||||||
|
this.nationality = newNationality;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Date getDateOfBirth() {
|
public Date getDateOfBirth() {
|
||||||
|
|||||||
+10
-4
@@ -2,15 +2,14 @@ package com.sap.sailing.domain.base.impl;
|
|||||||
|
|
||||||
import com.sap.sailing.domain.base.Nationality;
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
import com.sap.sailing.domain.base.Person;
|
import com.sap.sailing.domain.base.Person;
|
||||||
import com.sap.sailing.domain.base.Team;
|
|
||||||
import com.sap.sailing.domain.common.impl.NamedImpl;
|
import com.sap.sailing.domain.common.impl.NamedImpl;
|
||||||
|
|
||||||
public class TeamImpl extends NamedImpl implements Team {
|
public class TeamImpl extends NamedImpl implements DynamicTeam {
|
||||||
private static final long serialVersionUID = 4646922280429210183L;
|
private static final long serialVersionUID = 4646922280429210183L;
|
||||||
private final Iterable<? extends Person> sailors;
|
private final Iterable<? extends DynamicPerson> sailors;
|
||||||
private final Person coach;
|
private final Person coach;
|
||||||
|
|
||||||
public TeamImpl(String name, Iterable<? extends Person> sailors, Person coach) {
|
public TeamImpl(String name, Iterable<? extends DynamicPerson> sailors, Person coach) {
|
||||||
super(name);
|
super(name);
|
||||||
this.sailors = sailors;
|
this.sailors = sailors;
|
||||||
this.coach = coach;
|
this.coach = coach;
|
||||||
@@ -39,4 +38,11 @@ public class TeamImpl extends NamedImpl implements Team {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNationality(Nationality newNationality) {
|
||||||
|
for (Person sailor : getSailors()) {
|
||||||
|
((DynamicPerson) sailor).setNationality(newNationality);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+7
-7
@@ -9,18 +9,18 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.BoatClass;
|
import com.sap.sailing.domain.base.BoatClass;
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.ControlPoint;
|
import com.sap.sailing.domain.base.ControlPoint;
|
||||||
import com.sap.sailing.domain.base.Nationality;
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
import com.sap.sailing.domain.base.Person;
|
|
||||||
import com.sap.sailing.domain.base.RaceDefinition;
|
import com.sap.sailing.domain.base.RaceDefinition;
|
||||||
import com.sap.sailing.domain.base.Regatta;
|
import com.sap.sailing.domain.base.Regatta;
|
||||||
import com.sap.sailing.domain.base.Team;
|
|
||||||
import com.sap.sailing.domain.base.Waypoint;
|
import com.sap.sailing.domain.base.Waypoint;
|
||||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||||
import com.sap.sailing.domain.base.impl.CourseImpl;
|
import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicPerson;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.domain.base.impl.PersonImpl;
|
import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||||
@@ -41,9 +41,9 @@ import com.sap.sailing.domain.swisstimingadapter.Mark;
|
|||||||
import com.sap.sailing.domain.swisstimingadapter.MessageType;
|
import com.sap.sailing.domain.swisstimingadapter.MessageType;
|
||||||
import com.sap.sailing.domain.swisstimingadapter.Race;
|
import com.sap.sailing.domain.swisstimingadapter.Race;
|
||||||
import com.sap.sailing.domain.swisstimingadapter.RaceSpecificMessageLoader;
|
import com.sap.sailing.domain.swisstimingadapter.RaceSpecificMessageLoader;
|
||||||
import com.sap.sailing.domain.swisstimingadapter.StartList;
|
|
||||||
import com.sap.sailing.domain.swisstimingadapter.RaceType;
|
import com.sap.sailing.domain.swisstimingadapter.RaceType;
|
||||||
import com.sap.sailing.domain.swisstimingadapter.RaceType.OlympicRaceCode;
|
import com.sap.sailing.domain.swisstimingadapter.RaceType.OlympicRaceCode;
|
||||||
|
import com.sap.sailing.domain.swisstimingadapter.StartList;
|
||||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
|
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
|
||||||
import com.sap.sailing.domain.tracking.GPSFixMoving;
|
import com.sap.sailing.domain.tracking.GPSFixMoving;
|
||||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||||
@@ -128,13 +128,13 @@ public class DomainFactoryImpl implements DomainFactory {
|
|||||||
public Competitor getOrCreateCompetitor(com.sap.sailing.domain.swisstimingadapter.Competitor competitor, RaceType raceType) {
|
public Competitor getOrCreateCompetitor(com.sap.sailing.domain.swisstimingadapter.Competitor competitor, RaceType raceType) {
|
||||||
Competitor result = getCompetitorByBoatIDAndRaceType(competitor.getBoatID(), raceType);
|
Competitor result = getCompetitorByBoatIDAndRaceType(competitor.getBoatID(), raceType);
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
Boat boat = new BoatImpl(competitor.getName(), raceType.getBoatClass(), competitor.getBoatID());
|
DynamicBoat boat = new BoatImpl(competitor.getName(), raceType.getBoatClass(), competitor.getBoatID());
|
||||||
List<Person> teamMembers = new ArrayList<Person>();
|
List<DynamicPerson> teamMembers = new ArrayList<DynamicPerson>();
|
||||||
for (String teamMemberName : competitor.getName().split("[-+&]")) {
|
for (String teamMemberName : competitor.getName().split("[-+&]")) {
|
||||||
teamMembers.add(new PersonImpl(teamMemberName.trim(), getOrCreateNationality(competitor.getThreeLetterIOCCode()),
|
teamMembers.add(new PersonImpl(teamMemberName.trim(), getOrCreateNationality(competitor.getThreeLetterIOCCode()),
|
||||||
/* dateOfBirth */ null, teamMemberName.trim()));
|
/* dateOfBirth */ null, teamMemberName.trim()));
|
||||||
}
|
}
|
||||||
Team team = new TeamImpl(competitor.getName(), teamMembers, /* coach */ null);
|
DynamicTeam team = new TeamImpl(competitor.getName(), teamMembers, /* coach */ null);
|
||||||
result = baseDomainFactory.getOrCreateCompetitor(getCompetitorID(competitor.getBoatID(), raceType),
|
result = baseDomainFactory.getOrCreateCompetitor(getCompetitorID(competitor.getBoatID(), raceType),
|
||||||
competitor.getName(), team, boat);
|
competitor.getName(), team, boat);
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -17,11 +17,11 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.Person;
|
|
||||||
import com.sap.sailing.domain.base.Team;
|
|
||||||
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||||
import com.sap.sailing.domain.base.impl.CompetitorImpl;
|
import com.sap.sailing.domain.base.impl.CompetitorImpl;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicPerson;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.domain.base.impl.PersonImpl;
|
import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||||
import com.sap.sailing.domain.common.Position;
|
import com.sap.sailing.domain.common.Position;
|
||||||
@@ -114,8 +114,8 @@ public abstract class StoredTrackBasedTest extends TrackBasedTest {
|
|||||||
Map<Competitor, DynamicGPSFixTrack<Competitor, GPSFixMoving>> tracks = new HashMap<Competitor, DynamicGPSFixTrack<Competitor,GPSFixMoving>>();
|
Map<Competitor, DynamicGPSFixTrack<Competitor, GPSFixMoving>> tracks = new HashMap<Competitor, DynamicGPSFixTrack<Competitor,GPSFixMoving>>();
|
||||||
final String KIELER_WOCHE = "Kieler Woche";
|
final String KIELER_WOCHE = "Kieler Woche";
|
||||||
for (String competitorName : getCompetitorNamesOfStoredTracks(KIELER_WOCHE)) {
|
for (String competitorName : getCompetitorNamesOfStoredTracks(KIELER_WOCHE)) {
|
||||||
Person p = new PersonImpl(competitorName, /* nationality */ null, /* dateOfBirth */ null, /* description */ null);
|
DynamicPerson p = new PersonImpl(competitorName, /* nationality */ null, /* dateOfBirth */ null, /* description */ null);
|
||||||
Team t = new TeamImpl(competitorName, Collections.singleton(p), /* coach */ null);
|
DynamicTeam t = new TeamImpl(competitorName, Collections.singleton(p), /* coach */ null);
|
||||||
Competitor c = new CompetitorImpl(competitorName, competitorName, t, new BoatImpl(competitorName,
|
Competitor c = new CompetitorImpl(competitorName, competitorName, t, new BoatImpl(competitorName,
|
||||||
new BoatClassImpl("505", /* typicallyStartsUpwind */ true), null));
|
new BoatClassImpl("505", /* typicallyStartsUpwind */ true), null));
|
||||||
DynamicGPSFixTrack<Competitor, GPSFixMoving> track = readTrack(c, KIELER_WOCHE);
|
DynamicGPSFixTrack<Competitor, GPSFixMoving> track = readTrack(c, KIELER_WOCHE);
|
||||||
|
|||||||
+12
-12
@@ -19,21 +19,21 @@ import java.util.UUID;
|
|||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.BoatClass;
|
import com.sap.sailing.domain.base.BoatClass;
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.ControlPoint;
|
import com.sap.sailing.domain.base.ControlPoint;
|
||||||
import com.sap.sailing.domain.base.Course;
|
import com.sap.sailing.domain.base.Course;
|
||||||
import com.sap.sailing.domain.base.Mark;
|
import com.sap.sailing.domain.base.Mark;
|
||||||
import com.sap.sailing.domain.base.Nationality;
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
import com.sap.sailing.domain.base.Person;
|
|
||||||
import com.sap.sailing.domain.base.RaceDefinition;
|
import com.sap.sailing.domain.base.RaceDefinition;
|
||||||
import com.sap.sailing.domain.base.Regatta;
|
import com.sap.sailing.domain.base.Regatta;
|
||||||
import com.sap.sailing.domain.base.Sideline;
|
import com.sap.sailing.domain.base.Sideline;
|
||||||
import com.sap.sailing.domain.base.Team;
|
|
||||||
import com.sap.sailing.domain.base.Waypoint;
|
import com.sap.sailing.domain.base.Waypoint;
|
||||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||||
import com.sap.sailing.domain.base.impl.CourseImpl;
|
import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicPerson;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
|
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
|
||||||
import com.sap.sailing.domain.base.impl.PersonImpl;
|
import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||||
@@ -87,9 +87,9 @@ public class DomainFactoryImpl implements DomainFactory {
|
|||||||
private final Map<TracTracControlPoint, com.sap.sailing.domain.base.ControlPoint> controlPointCache =
|
private final Map<TracTracControlPoint, com.sap.sailing.domain.base.ControlPoint> controlPointCache =
|
||||||
new HashMap<TracTracControlPoint, com.sap.sailing.domain.base.ControlPoint>();
|
new HashMap<TracTracControlPoint, com.sap.sailing.domain.base.ControlPoint>();
|
||||||
|
|
||||||
private final Map<Pair<String, UUID>, Person> personCache = new HashMap<>();
|
private final Map<Pair<String, UUID>, DynamicPerson> personCache = new HashMap<>();
|
||||||
|
|
||||||
private final Map<Serializable, Team> teamCache = new HashMap<>();
|
private final Map<Serializable, DynamicTeam> teamCache = new HashMap<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Caches regattas by their name and their boat class's name
|
* Caches regattas by their name and their boat class's name
|
||||||
@@ -245,20 +245,20 @@ public class DomainFactoryImpl implements DomainFactory {
|
|||||||
nationality = null;
|
nationality = null;
|
||||||
logger.log(Level.SEVERE, "Unknown nationality "+nationalityAsString+" for competitor "+name+"; leaving null", iae);
|
logger.log(Level.SEVERE, "Unknown nationality "+nationalityAsString+" for competitor "+name+"; leaving null", iae);
|
||||||
}
|
}
|
||||||
Team team = getOrCreateTeam(name, nationality, competitorId);
|
DynamicTeam team = getOrCreateTeam(name, nationality, competitorId);
|
||||||
Boat boat = new BoatImpl(shortName, boatClass, shortName);
|
DynamicBoat boat = new BoatImpl(shortName, boatClass, shortName);
|
||||||
result = baseDomainFactory.getOrCreateCompetitor(competitorId, name, team, boat);
|
result = baseDomainFactory.getOrCreateCompetitor(competitorId, name, team, boat);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Team getOrCreateTeam(String name, Nationality nationality, UUID competitorId) {
|
public DynamicTeam getOrCreateTeam(String name, Nationality nationality, UUID competitorId) {
|
||||||
synchronized (teamCache) {
|
synchronized (teamCache) {
|
||||||
Team result = teamCache.get(competitorId);
|
DynamicTeam result = teamCache.get(competitorId);
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
String[] sailorNames = name.split("\\b*\\+\\b*");
|
String[] sailorNames = name.split("\\b*\\+\\b*");
|
||||||
List<Person> sailors = new ArrayList<Person>();
|
List<DynamicPerson> sailors = new ArrayList<DynamicPerson>();
|
||||||
for (String sailorName : sailorNames) {
|
for (String sailorName : sailorNames) {
|
||||||
sailors.add(getOrCreatePerson(sailorName.trim(), nationality, competitorId));
|
sailors.add(getOrCreatePerson(sailorName.trim(), nationality, competitorId));
|
||||||
}
|
}
|
||||||
@@ -270,10 +270,10 @@ public class DomainFactoryImpl implements DomainFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Person getOrCreatePerson(String name, Nationality nationality, UUID competitorId) {
|
public DynamicPerson getOrCreatePerson(String name, Nationality nationality, UUID competitorId) {
|
||||||
synchronized (personCache) {
|
synchronized (personCache) {
|
||||||
Pair<String, UUID> key = new Pair<String, UUID>(name, competitorId);
|
Pair<String, UUID> key = new Pair<String, UUID>(name, competitorId);
|
||||||
Person result = personCache.get(key);
|
DynamicPerson result = personCache.get(key);
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
result = new PersonImpl(name, nationality, /* date of birth unknown */null, /* description */"");
|
result = new PersonImpl(name, nationality, /* date of birth unknown */null, /* description */"");
|
||||||
personCache.put(key, result);
|
personCache.put(key, result);
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ package com.sap.sailing.domain.base;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages a set of {@link Competitor} objects. There may be a transient implementation based on a simple cache,
|
* Manages a set of {@link Competitor} objects. There may be a transient implementation based on a simple cache,
|
||||||
* and there may be persistent implementations.
|
* and there may be persistent implementations.
|
||||||
@@ -13,7 +16,7 @@ public interface CompetitorStore {
|
|||||||
|
|
||||||
Competitor getExistingCompetitorById(Serializable competitorId);
|
Competitor getExistingCompetitorById(Serializable competitorId);
|
||||||
|
|
||||||
Competitor getOrCreateCompetitor(Serializable competitorId, String name, Team team, Boat boat);
|
Competitor getOrCreateCompetitor(Serializable competitorId, String name, DynamicTeam team, DynamicBoat boat);
|
||||||
|
|
||||||
int size();
|
int size();
|
||||||
|
|
||||||
@@ -22,7 +25,18 @@ public interface CompetitorStore {
|
|||||||
*/
|
*/
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
Iterable<Competitor> getCompetitors();
|
Iterable<? extends Competitor> getCompetitors();
|
||||||
|
|
||||||
void removeCompetitor(Competitor competitor);
|
void removeCompetitor(Competitor competitor);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the competitor with {@link Competitor#getId() ID} <code>id</code> by setting the name, sail ID and nationality to
|
||||||
|
* the values provided. Doing so will not fire any events nor will it replicate this change from a master to any replicas.
|
||||||
|
* The calling client has to make sure that the changes applied will reach replicas and all other interested clients. It will
|
||||||
|
* be sufficient to ensure that subsequent DTOs produced from the competitor modified will reflect the changes.<p>
|
||||||
|
*
|
||||||
|
* If no competitor with the ID requested is found, the call is a no-op, doing nothing, not even throwing an exception.
|
||||||
|
* @return TODO
|
||||||
|
*/
|
||||||
|
Competitor updateCompetitor(Serializable id, String newName, String newSailId, Nationality newNationality);
|
||||||
}
|
}
|
||||||
+7
-3
@@ -14,11 +14,11 @@ import java.util.Iterator;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.WeakHashMap;
|
import java.util.WeakHashMap;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.BoatClass;
|
import com.sap.sailing.domain.base.BoatClass;
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.CompetitorStore;
|
import com.sap.sailing.domain.base.CompetitorStore;
|
||||||
@@ -30,7 +30,6 @@ import com.sap.sailing.domain.base.Gate;
|
|||||||
import com.sap.sailing.domain.base.Mark;
|
import com.sap.sailing.domain.base.Mark;
|
||||||
import com.sap.sailing.domain.base.Nationality;
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
import com.sap.sailing.domain.base.ObjectInputStreamResolvingAgainstDomainFactory;
|
import com.sap.sailing.domain.base.ObjectInputStreamResolvingAgainstDomainFactory;
|
||||||
import com.sap.sailing.domain.base.Team;
|
|
||||||
import com.sap.sailing.domain.base.Waypoint;
|
import com.sap.sailing.domain.base.Waypoint;
|
||||||
import com.sap.sailing.domain.common.CountryCode;
|
import com.sap.sailing.domain.common.CountryCode;
|
||||||
import com.sap.sailing.domain.common.Distance;
|
import com.sap.sailing.domain.common.Distance;
|
||||||
@@ -300,10 +299,15 @@ public class DomainFactoryImpl implements DomainFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized Competitor getOrCreateCompetitor(Serializable competitorId, String name, Team team, Boat boat) {
|
public synchronized Competitor getOrCreateCompetitor(Serializable competitorId, String name, DynamicTeam team, DynamicBoat boat) {
|
||||||
return competitorStore.getOrCreateCompetitor(competitorId, name, team, boat);
|
return competitorStore.getOrCreateCompetitor(competitorId, name, team, boat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DynamicCompetitor getOrCreateDynamicCompetitor(UUID fromString, String name, DynamicTeam team, DynamicBoat boat) {
|
||||||
|
return (DynamicCompetitor) getOrCreateDynamicCompetitor(fromString, name, team, boat);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ObjectInputStreamResolvingAgainstDomainFactory createObjectInputStreamResolvingAgainstThisFactory(InputStream inputStream) throws IOException {
|
public ObjectInputStreamResolvingAgainstDomainFactory createObjectInputStreamResolvingAgainstThisFactory(InputStream inputStream) throws IOException {
|
||||||
return new ObjectInputStreamResolvingAgainstDomainFactoryImpl(inputStream, this);
|
return new ObjectInputStreamResolvingAgainstDomainFactoryImpl(inputStream, this);
|
||||||
|
|||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
package com.sap.sailing.domain.base.impl;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import com.sap.sailing.domain.base.CompetitorStore;
|
||||||
|
|
||||||
|
public interface DynamicCompetitorStore extends CompetitorStore {
|
||||||
|
@Override
|
||||||
|
DynamicCompetitor getExistingCompetitorById(Serializable competitorId);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
DynamicCompetitor getOrCreateCompetitor(Serializable competitorId, String name, DynamicTeam team, DynamicBoat boat);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
Iterable<? extends DynamicCompetitor> getCompetitors();
|
||||||
|
|
||||||
|
}
|
||||||
+14
-4
@@ -4,10 +4,9 @@ import java.io.Serializable;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.CompetitorStore;
|
import com.sap.sailing.domain.base.CompetitorStore;
|
||||||
import com.sap.sailing.domain.base.Team;
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
|
|
||||||
public class TransientCompetitorStoreImpl implements CompetitorStore, Serializable {
|
public class TransientCompetitorStoreImpl implements CompetitorStore, Serializable {
|
||||||
private static final long serialVersionUID = -4198298775476586931L;
|
private static final long serialVersionUID = -4198298775476586931L;
|
||||||
@@ -17,7 +16,7 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
|
|||||||
competitorCache = new ConcurrentHashMap<>();
|
competitorCache = new ConcurrentHashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Competitor createCompetitor(Serializable id, String name, Team team, Boat boat) {
|
private Competitor createCompetitor(Serializable id, String name, DynamicTeam team, DynamicBoat boat) {
|
||||||
Competitor result = new CompetitorImpl(id, name, team, boat);
|
Competitor result = new CompetitorImpl(id, name, team, boat);
|
||||||
addNewCompetitor(id, result);
|
addNewCompetitor(id, result);
|
||||||
return result;
|
return result;
|
||||||
@@ -33,7 +32,7 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Team team, Boat boat) {
|
public Competitor getOrCreateCompetitor(Serializable competitorId, String name, DynamicTeam team, DynamicBoat boat) {
|
||||||
Competitor result = getExistingCompetitorById(competitorId); // avoid synchronization for successful read access
|
Competitor result = getExistingCompetitorById(competitorId); // avoid synchronization for successful read access
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
synchronized(this) {
|
synchronized(this) {
|
||||||
@@ -70,5 +69,16 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
|
|||||||
public void removeCompetitor(Competitor competitor) {
|
public void removeCompetitor(Competitor competitor) {
|
||||||
competitorCache.remove(competitor.getId());
|
competitorCache.remove(competitor.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Competitor updateCompetitor(Serializable id, String newName, String newSailId, Nationality newNationality) {
|
||||||
|
DynamicCompetitor competitor = (DynamicCompetitor) getExistingCompetitorById(id);
|
||||||
|
if (competitor != null) {
|
||||||
|
competitor.setName(newName);
|
||||||
|
competitor.getBoat().setSailId(newSailId);
|
||||||
|
competitor.getTeam().setNationality(newNationality);
|
||||||
|
}
|
||||||
|
return competitor;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+3
-3
@@ -2,14 +2,14 @@ package com.sap.sailing.server.gateway.deserialization.impl;
|
|||||||
|
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.BoatClass;
|
import com.sap.sailing.domain.base.BoatClass;
|
||||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||||
import com.sap.sailing.server.gateway.serialization.impl.BoatJsonSerializer;
|
import com.sap.sailing.server.gateway.serialization.impl.BoatJsonSerializer;
|
||||||
|
|
||||||
public class BoatJsonDeserializer implements JsonDeserializer<Boat> {
|
public class BoatJsonDeserializer implements JsonDeserializer<DynamicBoat> {
|
||||||
private final BoatClassJsonDeserializer boatClassDeserializer;
|
private final BoatClassJsonDeserializer boatClassDeserializer;
|
||||||
|
|
||||||
public BoatJsonDeserializer(BoatClassJsonDeserializer boatClassDeserializer) {
|
public BoatJsonDeserializer(BoatClassJsonDeserializer boatClassDeserializer) {
|
||||||
@@ -17,7 +17,7 @@ public class BoatJsonDeserializer implements JsonDeserializer<Boat> {
|
|||||||
this.boatClassDeserializer = boatClassDeserializer;
|
this.boatClassDeserializer = boatClassDeserializer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boat deserialize(JSONObject object) throws JsonDeserializationException {
|
public DynamicBoat deserialize(JSONObject object) throws JsonDeserializationException {
|
||||||
String name = object.get(BoatJsonSerializer.FIELD_NAME).toString();
|
String name = object.get(BoatJsonSerializer.FIELD_NAME).toString();
|
||||||
String sailId = object.get(BoatJsonSerializer.FIELD_SAIL_ID).toString();
|
String sailId = object.get(BoatJsonSerializer.FIELD_SAIL_ID).toString();
|
||||||
BoatClass boatClass = null;
|
BoatClass boatClass = null;
|
||||||
|
|||||||
+7
-7
@@ -4,19 +4,19 @@ import java.io.Serializable;
|
|||||||
|
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.DomainFactory;
|
import com.sap.sailing.domain.base.DomainFactory;
|
||||||
import com.sap.sailing.domain.base.SharedDomainFactory;
|
import com.sap.sailing.domain.base.SharedDomainFactory;
|
||||||
import com.sap.sailing.domain.base.Team;
|
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||||
import com.sap.sailing.server.gateway.serialization.impl.CompetitorJsonSerializer;
|
import com.sap.sailing.server.gateway.serialization.impl.CompetitorJsonSerializer;
|
||||||
|
|
||||||
public class CompetitorJsonDeserializer implements JsonDeserializer<Competitor> {
|
public class CompetitorJsonDeserializer implements JsonDeserializer<Competitor> {
|
||||||
protected final SharedDomainFactory factory;
|
protected final SharedDomainFactory factory;
|
||||||
protected final JsonDeserializer<Team> teamJsonDeserializer;
|
protected final JsonDeserializer<DynamicTeam> teamJsonDeserializer;
|
||||||
protected final JsonDeserializer<Boat> boatJsonDeserializer;
|
protected final JsonDeserializer<DynamicBoat> boatJsonDeserializer;
|
||||||
|
|
||||||
public static CompetitorJsonDeserializer create(DomainFactory baseDomainFactory) {
|
public static CompetitorJsonDeserializer create(DomainFactory baseDomainFactory) {
|
||||||
return new CompetitorJsonDeserializer(baseDomainFactory, new TeamJsonDeserializer(new PersonJsonDeserializer(
|
return new CompetitorJsonDeserializer(baseDomainFactory, new TeamJsonDeserializer(new PersonJsonDeserializer(
|
||||||
@@ -27,7 +27,7 @@ public class CompetitorJsonDeserializer implements JsonDeserializer<Competitor>
|
|||||||
this(factory, null, /* boatDeserializer */ null);
|
this(factory, null, /* boatDeserializer */ null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompetitorJsonDeserializer(SharedDomainFactory factory, JsonDeserializer<Team> teamJsonDeserializer, JsonDeserializer<Boat> boatDeserializer) {
|
public CompetitorJsonDeserializer(SharedDomainFactory factory, JsonDeserializer<DynamicTeam> teamJsonDeserializer, JsonDeserializer<DynamicBoat> boatDeserializer) {
|
||||||
this.factory = factory;
|
this.factory = factory;
|
||||||
this.teamJsonDeserializer = teamJsonDeserializer;
|
this.teamJsonDeserializer = teamJsonDeserializer;
|
||||||
this.boatJsonDeserializer = boatDeserializer;
|
this.boatJsonDeserializer = boatDeserializer;
|
||||||
@@ -38,8 +38,8 @@ public class CompetitorJsonDeserializer implements JsonDeserializer<Competitor>
|
|||||||
Serializable competitorId = (Serializable) object.get(CompetitorJsonSerializer.FIELD_ID);
|
Serializable competitorId = (Serializable) object.get(CompetitorJsonSerializer.FIELD_ID);
|
||||||
competitorId = Helpers.tryUuidConversion(competitorId);
|
competitorId = Helpers.tryUuidConversion(competitorId);
|
||||||
String name = (String) object.get(CompetitorJsonSerializer.FIELD_NAME);
|
String name = (String) object.get(CompetitorJsonSerializer.FIELD_NAME);
|
||||||
Team team = null;
|
DynamicTeam team = null;
|
||||||
Boat boat = null;
|
DynamicBoat boat = null;
|
||||||
if (teamJsonDeserializer != null) {
|
if (teamJsonDeserializer != null) {
|
||||||
team = teamJsonDeserializer.deserialize(Helpers.getNestedObjectSafe(object,
|
team = teamJsonDeserializer.deserialize(Helpers.getNestedObjectSafe(object,
|
||||||
CompetitorJsonSerializer.FIELD_TEAM));
|
CompetitorJsonSerializer.FIELD_TEAM));
|
||||||
|
|||||||
+3
-3
@@ -5,13 +5,13 @@ import java.util.Date;
|
|||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Nationality;
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
import com.sap.sailing.domain.base.Person;
|
import com.sap.sailing.domain.base.impl.DynamicPerson;
|
||||||
import com.sap.sailing.domain.base.impl.PersonImpl;
|
import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||||
import com.sap.sailing.server.gateway.serialization.impl.PersonJsonSerializer;
|
import com.sap.sailing.server.gateway.serialization.impl.PersonJsonSerializer;
|
||||||
|
|
||||||
public class PersonJsonDeserializer implements JsonDeserializer<Person> {
|
public class PersonJsonDeserializer implements JsonDeserializer<DynamicPerson> {
|
||||||
|
|
||||||
private final JsonDeserializer<Nationality> nationalityDeserializer;
|
private final JsonDeserializer<Nationality> nationalityDeserializer;
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ public class PersonJsonDeserializer implements JsonDeserializer<Person> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Person deserialize(JSONObject object) throws JsonDeserializationException {
|
public DynamicPerson deserialize(JSONObject object) throws JsonDeserializationException {
|
||||||
if (object == null) {
|
if (object == null) {
|
||||||
// Coach is often null
|
// Coach is often null
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
+7
-6
@@ -8,32 +8,33 @@ import org.json.simple.JSONObject;
|
|||||||
|
|
||||||
import com.sap.sailing.domain.base.DomainFactory;
|
import com.sap.sailing.domain.base.DomainFactory;
|
||||||
import com.sap.sailing.domain.base.Person;
|
import com.sap.sailing.domain.base.Person;
|
||||||
import com.sap.sailing.domain.base.Team;
|
import com.sap.sailing.domain.base.impl.DynamicPerson;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||||
import com.sap.sailing.server.gateway.serialization.impl.TeamJsonSerializer;
|
import com.sap.sailing.server.gateway.serialization.impl.TeamJsonSerializer;
|
||||||
|
|
||||||
public class TeamJsonDeserializer implements JsonDeserializer<Team> {
|
public class TeamJsonDeserializer implements JsonDeserializer<DynamicTeam> {
|
||||||
|
|
||||||
private final JsonDeserializer<Person> personDeserializer;
|
private final JsonDeserializer<DynamicPerson> personDeserializer;
|
||||||
|
|
||||||
public static TeamJsonDeserializer create(DomainFactory baseDomainFactory) {
|
public static TeamJsonDeserializer create(DomainFactory baseDomainFactory) {
|
||||||
return new TeamJsonDeserializer(new PersonJsonDeserializer(
|
return new TeamJsonDeserializer(new PersonJsonDeserializer(
|
||||||
new NationalityJsonDeserializer(baseDomainFactory)));
|
new NationalityJsonDeserializer(baseDomainFactory)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public TeamJsonDeserializer(JsonDeserializer<Person> personDeserializer) {
|
public TeamJsonDeserializer(JsonDeserializer<DynamicPerson> personDeserializer) {
|
||||||
this.personDeserializer = personDeserializer;
|
this.personDeserializer = personDeserializer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Team deserialize(JSONObject object)
|
public DynamicTeam deserialize(JSONObject object)
|
||||||
throws JsonDeserializationException {
|
throws JsonDeserializationException {
|
||||||
String name = (String) object.get(TeamJsonSerializer.FIELD_NAME);
|
String name = (String) object.get(TeamJsonSerializer.FIELD_NAME);
|
||||||
Person coach = personDeserializer.deserialize((JSONObject) object
|
Person coach = personDeserializer.deserialize((JSONObject) object
|
||||||
.get(TeamJsonSerializer.FIELD_COACH));
|
.get(TeamJsonSerializer.FIELD_COACH));
|
||||||
Set<Person> sailors = new HashSet<Person>();
|
Set<DynamicPerson> sailors = new HashSet<DynamicPerson>();
|
||||||
|
|
||||||
JSONArray sailorsJson = (JSONArray) object
|
JSONArray sailorsJson = (JSONArray) object
|
||||||
.get(TeamJsonSerializer.FIELD_SAILORS);
|
.get(TeamJsonSerializer.FIELD_SAILORS);
|
||||||
|
|||||||
+11
-11
@@ -4,44 +4,44 @@ import java.util.UUID;
|
|||||||
|
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.BoatClass;
|
import com.sap.sailing.domain.base.BoatClass;
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
|
||||||
import com.sap.sailing.domain.base.SharedDomainFactory;
|
import com.sap.sailing.domain.base.SharedDomainFactory;
|
||||||
import com.sap.sailing.domain.base.Team;
|
|
||||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicCompetitor;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.CompetitorMasterDataJsonSerializer;
|
import com.sap.sailing.server.gateway.serialization.masterdata.impl.CompetitorMasterDataJsonSerializer;
|
||||||
|
|
||||||
public class CompetitorMasterDataDeserializer implements JsonDeserializer<Competitor> {
|
public class CompetitorMasterDataDeserializer implements JsonDeserializer<DynamicCompetitor> {
|
||||||
|
|
||||||
private final JsonDeserializer<BoatClass> boatClassDeserializer;
|
private final JsonDeserializer<BoatClass> boatClassDeserializer;
|
||||||
|
|
||||||
private final JsonDeserializer<Team> teamDeserializer;
|
private final JsonDeserializer<DynamicTeam> teamDeserializer;
|
||||||
|
|
||||||
private final SharedDomainFactory domainFactory;
|
private final SharedDomainFactory domainFactory;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public CompetitorMasterDataDeserializer(JsonDeserializer<BoatClass> boatClassDeserializer,
|
public CompetitorMasterDataDeserializer(JsonDeserializer<BoatClass> boatClassDeserializer,
|
||||||
JsonDeserializer<Team> teamDeserializer, SharedDomainFactory domainFactory) {
|
JsonDeserializer<DynamicTeam> teamDeserializer, SharedDomainFactory domainFactory) {
|
||||||
this.boatClassDeserializer = boatClassDeserializer;
|
this.boatClassDeserializer = boatClassDeserializer;
|
||||||
this.teamDeserializer = teamDeserializer;
|
this.teamDeserializer = teamDeserializer;
|
||||||
this.domainFactory = domainFactory;
|
this.domainFactory = domainFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Competitor deserialize(JSONObject object) throws JsonDeserializationException {
|
public DynamicCompetitor deserialize(JSONObject object) throws JsonDeserializationException {
|
||||||
String name = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_NAME);
|
String name = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_NAME);
|
||||||
String id = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_ID);
|
String id = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_ID);
|
||||||
Boat boat = createBoatFromJson((JSONObject) object.get(CompetitorMasterDataJsonSerializer.FIELD_BOAT));
|
DynamicBoat boat = createBoatFromJson((JSONObject) object.get(CompetitorMasterDataJsonSerializer.FIELD_BOAT));
|
||||||
Team team = teamDeserializer.deserialize((JSONObject) object.get(CompetitorMasterDataJsonSerializer.FIELD_TEAM));
|
DynamicTeam team = teamDeserializer.deserialize((JSONObject) object.get(CompetitorMasterDataJsonSerializer.FIELD_TEAM));
|
||||||
return domainFactory.getOrCreateCompetitor(UUID.fromString(id), name, team, boat);
|
return domainFactory.getOrCreateDynamicCompetitor(UUID.fromString(id), name, team, boat);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Boat createBoatFromJson(JSONObject object) throws JsonDeserializationException {
|
private DynamicBoat createBoatFromJson(JSONObject object) throws JsonDeserializationException {
|
||||||
String name = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_NAME);
|
String name = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_NAME);
|
||||||
String sailID = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_SAIL_ID);
|
String sailID = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_SAIL_ID);
|
||||||
BoatClass boatClass = boatClassDeserializer.deserialize((JSONObject) object.get(CompetitorMasterDataJsonSerializer.FIELD_BOAT_CLASS));
|
BoatClass boatClass = boatClassDeserializer.deserialize((JSONObject) object.get(CompetitorMasterDataJsonSerializer.FIELD_BOAT_CLASS));
|
||||||
|
|||||||
+6
-6
@@ -9,13 +9,13 @@ import org.json.simple.JSONArray;
|
|||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.BoatClass;
|
import com.sap.sailing.domain.base.BoatClass;
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
|
||||||
import com.sap.sailing.domain.base.DomainFactory;
|
import com.sap.sailing.domain.base.DomainFactory;
|
||||||
import com.sap.sailing.domain.base.Fleet;
|
import com.sap.sailing.domain.base.Fleet;
|
||||||
import com.sap.sailing.domain.base.LeaderboardMasterData;
|
import com.sap.sailing.domain.base.LeaderboardMasterData;
|
||||||
import com.sap.sailing.domain.base.Nationality;
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
import com.sap.sailing.domain.base.Person;
|
import com.sap.sailing.domain.base.impl.DynamicCompetitor;
|
||||||
import com.sap.sailing.domain.base.Team;
|
import com.sap.sailing.domain.base.impl.DynamicPerson;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.domain.common.Color;
|
import com.sap.sailing.domain.common.Color;
|
||||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
||||||
import com.sap.sailing.domain.masterdataimport.EventMasterData;
|
import com.sap.sailing.domain.masterdataimport.EventMasterData;
|
||||||
@@ -47,9 +47,9 @@ public class LeaderboardGroupMasterDataJsonDeserializer implements JsonDeseriali
|
|||||||
public static JsonDeserializer<LeaderboardGroupMasterData> create(DomainFactory domainFactory) {
|
public static JsonDeserializer<LeaderboardGroupMasterData> create(DomainFactory domainFactory) {
|
||||||
JsonDeserializer<BoatClass> boatClassDeserializer = new BoatClassJsonDeserializer(domainFactory);
|
JsonDeserializer<BoatClass> boatClassDeserializer = new BoatClassJsonDeserializer(domainFactory);
|
||||||
JsonDeserializer<Nationality> nationalityDeserializer = new NationalityJsonDeserializer(domainFactory);
|
JsonDeserializer<Nationality> nationalityDeserializer = new NationalityJsonDeserializer(domainFactory);
|
||||||
JsonDeserializer<Person> personDeserializer = new PersonJsonDeserializer(nationalityDeserializer);
|
JsonDeserializer<DynamicPerson> personDeserializer = new PersonJsonDeserializer(nationalityDeserializer);
|
||||||
JsonDeserializer<Team> teamDeserializer = new TeamJsonDeserializer(personDeserializer);
|
JsonDeserializer<DynamicTeam> teamDeserializer = new TeamJsonDeserializer(personDeserializer);
|
||||||
JsonDeserializer<Competitor> competitorDeserializer = new CompetitorMasterDataDeserializer(
|
JsonDeserializer<DynamicCompetitor> competitorDeserializer = new CompetitorMasterDataDeserializer(
|
||||||
boatClassDeserializer, teamDeserializer, domainFactory);
|
boatClassDeserializer, teamDeserializer, domainFactory);
|
||||||
JsonDeserializer<RaceLogEvent> raceLogEventDeserializer = RaceLogEventDeserializer.create(domainFactory);
|
JsonDeserializer<RaceLogEvent> raceLogEventDeserializer = RaceLogEventDeserializer.create(domainFactory);
|
||||||
JsonDeserializer<LeaderboardMasterData> leaderboardDeserializer = new LeaderboardMasterDataJsonDeserializer(
|
JsonDeserializer<LeaderboardMasterData> leaderboardDeserializer = new LeaderboardMasterDataJsonDeserializer(
|
||||||
|
|||||||
+3
-2
@@ -13,6 +13,7 @@ import org.json.simple.JSONObject;
|
|||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.DomainFactory;
|
import com.sap.sailing.domain.base.DomainFactory;
|
||||||
import com.sap.sailing.domain.base.LeaderboardMasterData;
|
import com.sap.sailing.domain.base.LeaderboardMasterData;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicCompetitor;
|
||||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||||
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
|
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
|
||||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||||
@@ -30,11 +31,11 @@ import com.sap.sailing.server.gateway.serialization.masterdata.impl.RaceColumnMa
|
|||||||
|
|
||||||
public class LeaderboardMasterDataJsonDeserializer implements JsonDeserializer<LeaderboardMasterData> {
|
public class LeaderboardMasterDataJsonDeserializer implements JsonDeserializer<LeaderboardMasterData> {
|
||||||
|
|
||||||
private final JsonDeserializer<Competitor> competitorDeserializer;
|
private final JsonDeserializer<DynamicCompetitor> competitorDeserializer;
|
||||||
private final DomainFactory domainFactory;
|
private final DomainFactory domainFactory;
|
||||||
private final JsonDeserializer<RaceLogEvent> raceLogEventDeseriaizer;
|
private final JsonDeserializer<RaceLogEvent> raceLogEventDeseriaizer;
|
||||||
|
|
||||||
public LeaderboardMasterDataJsonDeserializer(JsonDeserializer<Competitor> competitorDeserializer,
|
public LeaderboardMasterDataJsonDeserializer(JsonDeserializer<DynamicCompetitor> competitorDeserializer,
|
||||||
DomainFactory domainFactory, JsonDeserializer<RaceLogEvent> raceLogEventDeseriaizer) {
|
DomainFactory domainFactory, JsonDeserializer<RaceLogEvent> raceLogEventDeseriaizer) {
|
||||||
this.competitorDeserializer = competitorDeserializer;
|
this.competitorDeserializer = competitorDeserializer;
|
||||||
this.domainFactory = domainFactory;
|
this.domainFactory = domainFactory;
|
||||||
|
|||||||
+51
-50
@@ -22,7 +22,6 @@ import org.junit.Test;
|
|||||||
|
|
||||||
import com.mongodb.DBCollection;
|
import com.mongodb.DBCollection;
|
||||||
import com.mongodb.DBCursor;
|
import com.mongodb.DBCursor;
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.BoatClass;
|
import com.sap.sailing.domain.base.BoatClass;
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.CourseArea;
|
import com.sap.sailing.domain.base.CourseArea;
|
||||||
@@ -33,12 +32,14 @@ import com.sap.sailing.domain.base.Person;
|
|||||||
import com.sap.sailing.domain.base.RaceColumn;
|
import com.sap.sailing.domain.base.RaceColumn;
|
||||||
import com.sap.sailing.domain.base.Regatta;
|
import com.sap.sailing.domain.base.Regatta;
|
||||||
import com.sap.sailing.domain.base.Series;
|
import com.sap.sailing.domain.base.Series;
|
||||||
import com.sap.sailing.domain.base.Team;
|
|
||||||
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||||
import com.sap.sailing.domain.base.impl.CompetitorImpl;
|
import com.sap.sailing.domain.base.impl.CompetitorImpl;
|
||||||
import com.sap.sailing.domain.base.impl.CourseAreaImpl;
|
import com.sap.sailing.domain.base.impl.CourseAreaImpl;
|
||||||
import com.sap.sailing.domain.base.impl.DomainFactoryImpl;
|
import com.sap.sailing.domain.base.impl.DomainFactoryImpl;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicPerson;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||||
import com.sap.sailing.domain.base.impl.NationalityImpl;
|
import com.sap.sailing.domain.base.impl.NationalityImpl;
|
||||||
import com.sap.sailing.domain.base.impl.PersonImpl;
|
import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||||
@@ -180,24 +181,24 @@ public class MasterDataImportTest {
|
|||||||
// Set tracked Race with competitors
|
// Set tracked Race with competitors
|
||||||
Set<Competitor> competitors = new HashSet<Competitor>();
|
Set<Competitor> competitors = new HashSet<Competitor>();
|
||||||
UUID competitorUUID = UUID.randomUUID();
|
UUID competitorUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors = new HashSet<Person>();
|
Set<DynamicPerson> sailors = new HashSet<DynamicPerson>();
|
||||||
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Oberhoschy"));
|
"Oberhoschy"));
|
||||||
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Der Lennart halt");
|
"Der Lennart halt");
|
||||||
Team team = new TeamImpl("Pros", sailors, coach);
|
DynamicTeam team = new TeamImpl("Pros", sailors, coach);
|
||||||
BoatClass boatClass = new BoatClassImpl("H16", true);
|
BoatClass boatClass = new BoatClassImpl("H16", true);
|
||||||
Boat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
DynamicBoat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
||||||
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
||||||
competitors.add(competitor);
|
competitors.add(competitor);
|
||||||
UUID competitorToSuppressUUID = UUID.randomUUID();
|
UUID competitorToSuppressUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors2 = new HashSet<Person>();
|
Set<DynamicPerson> sailors2 = new HashSet<DynamicPerson>();
|
||||||
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"segelt auch mit"));
|
"segelt auch mit"));
|
||||||
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Bester Coach");
|
"Bester Coach");
|
||||||
Team team2 = new TeamImpl("Noobs", sailors2, coach2);
|
DynamicTeam team2 = new TeamImpl("Noobs", sailors2, coach2);
|
||||||
Boat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
DynamicBoat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
||||||
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
||||||
competitors.add(competitorToSuppress);
|
competitors.add(competitorToSuppress);
|
||||||
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
||||||
@@ -345,22 +346,22 @@ public class MasterDataImportTest {
|
|||||||
// Set tracked Race with competitors
|
// Set tracked Race with competitors
|
||||||
Set<Competitor> competitors = new HashSet<Competitor>();
|
Set<Competitor> competitors = new HashSet<Competitor>();
|
||||||
UUID competitorUUID = UUID.randomUUID();
|
UUID competitorUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors = new HashSet<Person>();
|
Set<DynamicPerson> sailors = new HashSet<DynamicPerson>();
|
||||||
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Oberhoschy"));
|
"Oberhoschy"));
|
||||||
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Der Lennart halt");
|
"Der Lennart halt");
|
||||||
Team team = new TeamImpl("Pros", sailors, coach);
|
DynamicTeam team = new TeamImpl("Pros", sailors, coach);
|
||||||
BoatClass boatClass = new BoatClassImpl("H16", true);
|
BoatClass boatClass = new BoatClassImpl("H16", true);
|
||||||
Boat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
DynamicBoat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
||||||
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
||||||
competitors.add(competitor);
|
competitors.add(competitor);
|
||||||
UUID competitor2UUID = UUID.randomUUID();
|
UUID competitor2UUID = UUID.randomUUID();
|
||||||
Set<Person> sailors2 = new HashSet<Person>();
|
Set<DynamicPerson> sailors2 = new HashSet<DynamicPerson>();
|
||||||
sailors2.add(new PersonImpl("Test Mustermann", new NationalityImpl("GER"), new Date(645487200000L), "desc"));
|
sailors2.add(new PersonImpl("Test Mustermann", new NationalityImpl("GER"), new Date(645487200000L), "desc"));
|
||||||
Person coach2 = new PersonImpl("Max Test", new NationalityImpl("GER"), new Date(645487200000L), "desc");
|
Person coach2 = new PersonImpl("Max Test", new NationalityImpl("GER"), new Date(645487200000L), "desc");
|
||||||
Team team2 = new TeamImpl("Pros2", sailors2, coach2);
|
DynamicTeam team2 = new TeamImpl("Pros2", sailors2, coach2);
|
||||||
Boat boat2 = new BoatImpl("FastBoat", boatClass, "GER70133");
|
DynamicBoat boat2 = new BoatImpl("FastBoat", boatClass, "GER70133");
|
||||||
CompetitorImpl competitor2 = new CompetitorImpl(competitor2UUID, "Froderik", team2, boat2);
|
CompetitorImpl competitor2 = new CompetitorImpl(competitor2UUID, "Froderik", team2, boat2);
|
||||||
competitors.add(competitor2);
|
competitors.add(competitor2);
|
||||||
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
||||||
@@ -500,22 +501,22 @@ public class MasterDataImportTest {
|
|||||||
// Set tracked Race with competitors
|
// Set tracked Race with competitors
|
||||||
Set<Competitor> competitors = new HashSet<Competitor>();
|
Set<Competitor> competitors = new HashSet<Competitor>();
|
||||||
UUID competitorUUID = UUID.randomUUID();
|
UUID competitorUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors = new HashSet<Person>();
|
Set<DynamicPerson> sailors = new HashSet<DynamicPerson>();
|
||||||
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Oberhoschy"));
|
"Oberhoschy"));
|
||||||
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Der Lennart halt");
|
"Der Lennart halt");
|
||||||
Team team = new TeamImpl("Pros", sailors, coach);
|
DynamicTeam team = new TeamImpl("Pros", sailors, coach);
|
||||||
BoatClass boatClass = new BoatClassImpl("H16", true);
|
BoatClass boatClass = new BoatClassImpl("H16", true);
|
||||||
Boat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
DynamicBoat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
||||||
Competitor competitor = sourceDomainFactory.getOrCreateCompetitor(competitorUUID, "Froderik", team, boat);
|
Competitor competitor = sourceDomainFactory.getOrCreateCompetitor(competitorUUID, "Froderik", team, boat);
|
||||||
competitors.add(competitor);
|
competitors.add(competitor);
|
||||||
UUID competitor2UUID = UUID.randomUUID();
|
UUID competitor2UUID = UUID.randomUUID();
|
||||||
Set<Person> sailors2 = new HashSet<Person>();
|
Set<DynamicPerson> sailors2 = new HashSet<DynamicPerson>();
|
||||||
sailors2.add(new PersonImpl("Test Mustermann", new NationalityImpl("GER"), new Date(645487200000L), "desc"));
|
sailors2.add(new PersonImpl("Test Mustermann", new NationalityImpl("GER"), new Date(645487200000L), "desc"));
|
||||||
Person coach2 = new PersonImpl("Max Test", new NationalityImpl("GER"), new Date(645487200000L), "desc");
|
Person coach2 = new PersonImpl("Max Test", new NationalityImpl("GER"), new Date(645487200000L), "desc");
|
||||||
Team team2 = new TeamImpl("Pros2", sailors2, coach2);
|
DynamicTeam team2 = new TeamImpl("Pros2", sailors2, coach2);
|
||||||
Boat boat2 = new BoatImpl("FastBoat", boatClass, "GER70133");
|
DynamicBoat boat2 = new BoatImpl("FastBoat", boatClass, "GER70133");
|
||||||
Competitor competitor2 = sourceDomainFactory.getOrCreateCompetitor(competitor2UUID, "Froderik", team2, boat2);
|
Competitor competitor2 = sourceDomainFactory.getOrCreateCompetitor(competitor2UUID, "Froderik", team2, boat2);
|
||||||
competitors.add(competitor2);
|
competitors.add(competitor2);
|
||||||
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
||||||
@@ -632,24 +633,24 @@ public class MasterDataImportTest {
|
|||||||
// Set tracked Race with competitors
|
// Set tracked Race with competitors
|
||||||
Set<Competitor> competitors = new HashSet<Competitor>();
|
Set<Competitor> competitors = new HashSet<Competitor>();
|
||||||
UUID competitorUUID = UUID.randomUUID();
|
UUID competitorUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors = new HashSet<Person>();
|
Set<DynamicPerson> sailors = new HashSet<DynamicPerson>();
|
||||||
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Oberhoschy"));
|
"Oberhoschy"));
|
||||||
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Der Lennart halt");
|
"Der Lennart halt");
|
||||||
Team team = new TeamImpl("Pros", sailors, coach);
|
DynamicTeam team = new TeamImpl("Pros", sailors, coach);
|
||||||
BoatClass boatClass = new BoatClassImpl("H16", true);
|
BoatClass boatClass = new BoatClassImpl("H16", true);
|
||||||
Boat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
DynamicBoat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
||||||
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
||||||
competitors.add(competitor);
|
competitors.add(competitor);
|
||||||
UUID competitorToSuppressUUID = UUID.randomUUID();
|
UUID competitorToSuppressUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors2 = new HashSet<Person>();
|
Set<DynamicPerson> sailors2 = new HashSet<DynamicPerson>();
|
||||||
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"segelt auch mit"));
|
"segelt auch mit"));
|
||||||
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Bester Coach");
|
"Bester Coach");
|
||||||
Team team2 = new TeamImpl("Noobs", sailors2, coach2);
|
DynamicTeam team2 = new TeamImpl("Noobs", sailors2, coach2);
|
||||||
Boat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
DynamicBoat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
||||||
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
||||||
competitors.add(competitorToSuppress);
|
competitors.add(competitorToSuppress);
|
||||||
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
||||||
@@ -808,24 +809,24 @@ public class MasterDataImportTest {
|
|||||||
// Set tracked Race with competitors
|
// Set tracked Race with competitors
|
||||||
Set<Competitor> competitors = new HashSet<Competitor>();
|
Set<Competitor> competitors = new HashSet<Competitor>();
|
||||||
UUID competitorUUID = UUID.randomUUID();
|
UUID competitorUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors = new HashSet<Person>();
|
Set<DynamicPerson> sailors = new HashSet<DynamicPerson>();
|
||||||
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Oberhoschy"));
|
"Oberhoschy"));
|
||||||
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Der Lennart halt");
|
"Der Lennart halt");
|
||||||
Team team = new TeamImpl("Pros", sailors, coach);
|
DynamicTeam team = new TeamImpl("Pros", sailors, coach);
|
||||||
BoatClass boatClass = new BoatClassImpl("H16", true);
|
BoatClass boatClass = new BoatClassImpl("H16", true);
|
||||||
Boat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
DynamicBoat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
||||||
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
||||||
competitors.add(competitor);
|
competitors.add(competitor);
|
||||||
UUID competitorToSuppressUUID = UUID.randomUUID();
|
UUID competitorToSuppressUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors2 = new HashSet<Person>();
|
Set<DynamicPerson> sailors2 = new HashSet<DynamicPerson>();
|
||||||
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"segelt auch mit"));
|
"segelt auch mit"));
|
||||||
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Bester Coach");
|
"Bester Coach");
|
||||||
Team team2 = new TeamImpl("Noobs", sailors2, coach2);
|
DynamicTeam team2 = new TeamImpl("Noobs", sailors2, coach2);
|
||||||
Boat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
DynamicBoat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
||||||
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
||||||
competitors.add(competitorToSuppress);
|
competitors.add(competitorToSuppress);
|
||||||
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
||||||
@@ -978,24 +979,24 @@ public class MasterDataImportTest {
|
|||||||
// Set tracked Race with competitors
|
// Set tracked Race with competitors
|
||||||
Set<Competitor> competitors = new HashSet<Competitor>();
|
Set<Competitor> competitors = new HashSet<Competitor>();
|
||||||
UUID competitorUUID = UUID.randomUUID();
|
UUID competitorUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors = new HashSet<Person>();
|
Set<DynamicPerson> sailors = new HashSet<DynamicPerson>();
|
||||||
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Oberhoschy"));
|
"Oberhoschy"));
|
||||||
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Der Lennart halt");
|
"Der Lennart halt");
|
||||||
Team team = new TeamImpl("Pros", sailors, coach);
|
DynamicTeam team = new TeamImpl("Pros", sailors, coach);
|
||||||
BoatClass boatClass = new BoatClassImpl("H16", true);
|
BoatClass boatClass = new BoatClassImpl("H16", true);
|
||||||
Boat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
DynamicBoat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
||||||
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
||||||
competitors.add(competitor);
|
competitors.add(competitor);
|
||||||
UUID competitorToSuppressUUID = UUID.randomUUID();
|
UUID competitorToSuppressUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors2 = new HashSet<Person>();
|
Set<DynamicPerson> sailors2 = new HashSet<DynamicPerson>();
|
||||||
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"segelt auch mit"));
|
"segelt auch mit"));
|
||||||
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Bester Coach");
|
"Bester Coach");
|
||||||
Team team2 = new TeamImpl("Noobs", sailors2, coach2);
|
DynamicTeam team2 = new TeamImpl("Noobs", sailors2, coach2);
|
||||||
Boat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
DynamicBoat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
||||||
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
||||||
competitors.add(competitorToSuppress);
|
competitors.add(competitorToSuppress);
|
||||||
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
||||||
@@ -1103,24 +1104,24 @@ public class MasterDataImportTest {
|
|||||||
// Set tracked Race with competitors
|
// Set tracked Race with competitors
|
||||||
Set<Competitor> competitors = new HashSet<Competitor>();
|
Set<Competitor> competitors = new HashSet<Competitor>();
|
||||||
UUID competitorUUID = UUID.randomUUID();
|
UUID competitorUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors = new HashSet<Person>();
|
Set<DynamicPerson> sailors = new HashSet<DynamicPerson>();
|
||||||
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Oberhoschy"));
|
"Oberhoschy"));
|
||||||
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Der Lennart halt");
|
"Der Lennart halt");
|
||||||
Team team = new TeamImpl("Pros", sailors, coach);
|
DynamicTeam team = new TeamImpl("Pros", sailors, coach);
|
||||||
BoatClass boatClass = new BoatClassImpl("H16", true);
|
BoatClass boatClass = new BoatClassImpl("H16", true);
|
||||||
Boat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
DynamicBoat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
||||||
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
||||||
competitors.add(competitor);
|
competitors.add(competitor);
|
||||||
UUID competitorToSuppressUUID = UUID.randomUUID();
|
UUID competitorToSuppressUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors2 = new HashSet<Person>();
|
Set<DynamicPerson> sailors2 = new HashSet<DynamicPerson>();
|
||||||
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"segelt auch mit"));
|
"segelt auch mit"));
|
||||||
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Bester Coach");
|
"Bester Coach");
|
||||||
Team team2 = new TeamImpl("Noobs", sailors2, coach2);
|
DynamicTeam team2 = new TeamImpl("Noobs", sailors2, coach2);
|
||||||
Boat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
DynamicBoat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
||||||
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
||||||
competitors.add(competitorToSuppress);
|
competitors.add(competitorToSuppress);
|
||||||
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
||||||
@@ -1277,24 +1278,24 @@ public class MasterDataImportTest {
|
|||||||
// Set tracked Race with competitors
|
// Set tracked Race with competitors
|
||||||
Set<Competitor> competitors = new HashSet<Competitor>();
|
Set<Competitor> competitors = new HashSet<Competitor>();
|
||||||
UUID competitorUUID = UUID.randomUUID();
|
UUID competitorUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors = new HashSet<Person>();
|
Set<DynamicPerson> sailors = new HashSet<DynamicPerson>();
|
||||||
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors.add(new PersonImpl("Froderik Poterson", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Oberhoschy"));
|
"Oberhoschy"));
|
||||||
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach = new PersonImpl("Lennart Hensler", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Der Lennart halt");
|
"Der Lennart halt");
|
||||||
Team team = new TeamImpl("Pros", sailors, coach);
|
DynamicTeam team = new TeamImpl("Pros", sailors, coach);
|
||||||
BoatClass boatClass = new BoatClassImpl("H16", true);
|
BoatClass boatClass = new BoatClassImpl("H16", true);
|
||||||
Boat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
DynamicBoat boat = new BoatImpl("Wingy", boatClass, "GER70133");
|
||||||
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", team, boat);
|
||||||
competitors.add(competitor);
|
competitors.add(competitor);
|
||||||
UUID competitorToSuppressUUID = UUID.randomUUID();
|
UUID competitorToSuppressUUID = UUID.randomUUID();
|
||||||
Set<Person> sailors2 = new HashSet<Person>();
|
Set<DynamicPerson> sailors2 = new HashSet<DynamicPerson>();
|
||||||
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
sailors2.add(new PersonImpl("Angela Merkel", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"segelt auch mit"));
|
"segelt auch mit"));
|
||||||
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
Person coach2 = new PersonImpl("Peer Steinbrueck", new NationalityImpl("GER"), new Date(645487200000L),
|
||||||
"Bester Coach");
|
"Bester Coach");
|
||||||
Team team2 = new TeamImpl("Noobs", sailors2, coach2);
|
DynamicTeam team2 = new TeamImpl("Noobs", sailors2, coach2);
|
||||||
Boat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
DynamicBoat boat2 = new BoatImpl("LahmeEnte", boatClass, "GER1337");
|
||||||
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
CompetitorImpl competitorToSuppress = new CompetitorImpl(competitorToSuppressUUID, "Merkel", team2, boat2);
|
||||||
competitors.add(competitorToSuppress);
|
competitors.add(competitorToSuppress);
|
||||||
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
TrackedRace trackedRace = new DummyTrackedRace(competitors, regatta);
|
||||||
|
|||||||
+9
@@ -7,6 +7,7 @@ import java.io.Serializable;
|
|||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.CompetitorStore;
|
import com.sap.sailing.domain.base.CompetitorStore;
|
||||||
import com.sap.sailing.domain.base.DomainFactory;
|
import com.sap.sailing.domain.base.DomainFactory;
|
||||||
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
import com.sap.sailing.domain.base.impl.DomainFactoryImpl;
|
import com.sap.sailing.domain.base.impl.DomainFactoryImpl;
|
||||||
import com.sap.sailing.domain.base.impl.TransientCompetitorStoreImpl;
|
import com.sap.sailing.domain.base.impl.TransientCompetitorStoreImpl;
|
||||||
import com.sap.sailing.domain.persistence.DomainObjectFactory;
|
import com.sap.sailing.domain.persistence.DomainObjectFactory;
|
||||||
@@ -79,5 +80,13 @@ public class PersistentCompetitorStore extends TransientCompetitorStoreImpl impl
|
|||||||
storeTo.removeCompetitor(competitor);
|
storeTo.removeCompetitor(competitor);
|
||||||
super.removeCompetitor(competitor);
|
super.removeCompetitor(competitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Competitor updateCompetitor(Serializable id, String newName, String newSailId, Nationality newNationality) {
|
||||||
|
Competitor result = super.updateCompetitor(id, newName, newSailId, newNationality);
|
||||||
|
storeTo.storeCompetitor(result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+3
-1
@@ -42,6 +42,7 @@ import com.sap.sailing.domain.base.RegattaListener;
|
|||||||
import com.sap.sailing.domain.base.Series;
|
import com.sap.sailing.domain.base.Series;
|
||||||
import com.sap.sailing.domain.base.Sideline;
|
import com.sap.sailing.domain.base.Sideline;
|
||||||
import com.sap.sailing.domain.base.Waypoint;
|
import com.sap.sailing.domain.base.Waypoint;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicCompetitor;
|
||||||
import com.sap.sailing.domain.base.impl.EventImpl;
|
import com.sap.sailing.domain.base.impl.EventImpl;
|
||||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||||
@@ -1702,7 +1703,8 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen
|
|||||||
// only copy the competitors from the deserialized competitor store; don't use it because it will have set
|
// only copy the competitors from the deserialized competitor store; don't use it because it will have set
|
||||||
// a default Mongo object factory
|
// a default Mongo object factory
|
||||||
for (Competitor competitor : ((CompetitorStore) ois.readObject()).getCompetitors()) {
|
for (Competitor competitor : ((CompetitorStore) ois.readObject()).getCompetitors()) {
|
||||||
persistentCompetitorStore.getOrCreateCompetitor(competitor.getId(), competitor.getName(), competitor.getTeam(), competitor.getBoat());
|
DynamicCompetitor dynamicCompetitor = (DynamicCompetitor) competitor;
|
||||||
|
persistentCompetitorStore.getOrCreateCompetitor(dynamicCompetitor.getId(), dynamicCompetitor.getName(), dynamicCompetitor.getTeam(), dynamicCompetitor.getBoat());
|
||||||
}
|
}
|
||||||
logoutput.append("\nReceived " + persistentCompetitorStore.size() + " NEW competitors\n");
|
logoutput.append("\nReceived " + persistentCompetitorStore.size() + " NEW competitors\n");
|
||||||
|
|
||||||
|
|||||||
+29
-33
@@ -2,46 +2,42 @@ package com.sap.sailing.server.operationaltransformation;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.Team;
|
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.server.RacingEventService;
|
import com.sap.sailing.server.RacingEventService;
|
||||||
import com.sap.sailing.server.RacingEventServiceOperation;
|
import com.sap.sailing.server.RacingEventServiceOperation;
|
||||||
|
|
||||||
public class CreatePersistentCompetitor extends
|
public class CreatePersistentCompetitor extends AbstractRacingEventServiceOperation<Competitor> {
|
||||||
AbstractRacingEventServiceOperation<Competitor> {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1538753300467120249L;
|
|
||||||
// private static final Logger logger =
|
|
||||||
// Logger.getLogger(CreatePersistentCompetitor.class.getName());
|
|
||||||
|
|
||||||
private final Serializable id;
|
private static final long serialVersionUID = 1538753300467120249L;
|
||||||
private final String name;
|
// private static final Logger logger =
|
||||||
private final Team team;
|
// Logger.getLogger(CreatePersistentCompetitor.class.getName());
|
||||||
private final Boat boat;
|
|
||||||
|
|
||||||
public CreatePersistentCompetitor(Serializable id, String name, Team team,
|
private final Serializable id;
|
||||||
Boat boat) {
|
private final String name;
|
||||||
this.id = id;
|
private final DynamicTeam team;
|
||||||
this.name = name;
|
private final DynamicBoat boat;
|
||||||
this.team = team;
|
|
||||||
this.boat = boat;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
public CreatePersistentCompetitor(Serializable id, String name, DynamicTeam team, DynamicBoat boat) {
|
||||||
public Competitor internalApplyTo(RacingEventService toState) {
|
this.id = id;
|
||||||
return toState.getBaseDomainFactory().getOrCreateCompetitor(id, name, team, boat);
|
this.name = name;
|
||||||
}
|
this.team = team;
|
||||||
|
this.boat = boat;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RacingEventServiceOperation<?> transformClientOp(
|
public Competitor internalApplyTo(RacingEventService toState) {
|
||||||
RacingEventServiceOperation<?> serverOp) {
|
return toState.getBaseDomainFactory().getOrCreateCompetitor(id, name, team, boat);
|
||||||
return serverOp.transformCreatePersistentCompetitorClientOp(this);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RacingEventServiceOperation<?> transformServerOp(
|
public RacingEventServiceOperation<?> transformClientOp(RacingEventServiceOperation<?> serverOp) {
|
||||||
RacingEventServiceOperation<?> clientOp) {
|
return serverOp.transformCreatePersistentCompetitorClientOp(this);
|
||||||
return clientOp.transformCreatePersistentCompetitorServerOp(this);
|
}
|
||||||
}
|
|
||||||
|
@Override
|
||||||
|
public RacingEventServiceOperation<?> transformServerOp(RacingEventServiceOperation<?> clientOp) {
|
||||||
|
return clientOp.transformCreatePersistentCompetitorServerOp(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
package com.sap.sailing.server.operationaltransformation;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
|
import com.sap.sailing.server.RacingEventService;
|
||||||
|
import com.sap.sailing.server.RacingEventServiceOperation;
|
||||||
|
|
||||||
|
public class UpdateCompetitor extends AbstractRacingEventServiceOperation<Void> {
|
||||||
|
private static final long serialVersionUID = 1172181354320184263L;
|
||||||
|
private final Serializable id;
|
||||||
|
private final String newName;
|
||||||
|
private final String newSailId;
|
||||||
|
private final Nationality newNationality;
|
||||||
|
|
||||||
|
public UpdateCompetitor(Serializable id, String newName, String newSailId, Nationality newNationality) {
|
||||||
|
super();
|
||||||
|
this.id = id;
|
||||||
|
this.newName = newName;
|
||||||
|
this.newSailId = newSailId;
|
||||||
|
this.newNationality = newNationality;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Void internalApplyTo(RacingEventService toState) throws Exception {
|
||||||
|
toState.getBaseDomainFactory().getCompetitorStore().updateCompetitor(id, newName, newSailId, newNationality);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RacingEventServiceOperation<?> transformClientOp(RacingEventServiceOperation<?> serverOp) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RacingEventServiceOperation<?> transformServerOp(RacingEventServiceOperation<?> clientOp) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+17
-9
@@ -6,23 +6,25 @@ import java.util.HashMap;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import com.sap.sailing.domain.base.Boat;
|
|
||||||
import com.sap.sailing.domain.base.BoatClass;
|
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.ControlPoint;
|
||||||
import com.sap.sailing.domain.base.CourseArea;
|
import com.sap.sailing.domain.base.CourseArea;
|
||||||
import com.sap.sailing.domain.base.Gate;
|
import com.sap.sailing.domain.base.Gate;
|
||||||
import com.sap.sailing.domain.base.Mark;
|
import com.sap.sailing.domain.base.Mark;
|
||||||
import com.sap.sailing.domain.base.Nationality;
|
import com.sap.sailing.domain.base.Nationality;
|
||||||
import com.sap.sailing.domain.base.SharedDomainFactory;
|
import com.sap.sailing.domain.base.SharedDomainFactory;
|
||||||
import com.sap.sailing.domain.base.Team;
|
|
||||||
import com.sap.sailing.domain.base.Waypoint;
|
import com.sap.sailing.domain.base.Waypoint;
|
||||||
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||||
import com.sap.sailing.domain.base.impl.CompetitorImpl;
|
import com.sap.sailing.domain.base.impl.CompetitorImpl;
|
||||||
import com.sap.sailing.domain.base.impl.CourseAreaImpl;
|
import com.sap.sailing.domain.base.impl.CourseAreaImpl;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicCompetitor;
|
||||||
|
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||||
import com.sap.sailing.domain.base.impl.GateImpl;
|
import com.sap.sailing.domain.base.impl.GateImpl;
|
||||||
import com.sap.sailing.domain.base.impl.MarkImpl;
|
import com.sap.sailing.domain.base.impl.MarkImpl;
|
||||||
import com.sap.sailing.domain.base.impl.NationalityImpl;
|
import com.sap.sailing.domain.base.impl.NationalityImpl;
|
||||||
@@ -39,7 +41,7 @@ public enum DomainFactoryImpl implements SharedDomainFactory {
|
|||||||
private final Map<String, BoatClass> boatClassCache = new HashMap<String, BoatClass>();
|
private final Map<String, BoatClass> boatClassCache = new HashMap<String, BoatClass>();
|
||||||
private final ConcurrentHashMap<Serializable, Waypoint> waypointCache = new ConcurrentHashMap<Serializable, Waypoint>();
|
private final ConcurrentHashMap<Serializable, Waypoint> waypointCache = new ConcurrentHashMap<Serializable, Waypoint>();
|
||||||
private final Set<String> mayStartWithNoUpwindLeg = new HashSet<String>(Arrays.asList(new String[] { "extreme40", "ess", "ess40" }));
|
private final Set<String> mayStartWithNoUpwindLeg = new HashSet<String>(Arrays.asList(new String[] { "extreme40", "ess", "ess40" }));
|
||||||
private final Map<Serializable, Competitor> competitorCache = new HashMap<Serializable, Competitor>();
|
private final Map<Serializable, DynamicCompetitor> competitorCache = new HashMap<Serializable, DynamicCompetitor>();
|
||||||
private final Map<Serializable, CourseArea> courseAreaCache = new HashMap<Serializable, CourseArea>();
|
private final Map<Serializable, CourseArea> courseAreaCache = new HashMap<Serializable, CourseArea>();
|
||||||
|
|
||||||
public Nationality getOrCreateNationality(String threeLetterIOCCode) {
|
public Nationality getOrCreateNationality(String threeLetterIOCCode) {
|
||||||
@@ -134,23 +136,29 @@ public enum DomainFactoryImpl implements SharedDomainFactory {
|
|||||||
return getOrCreateBoatClass(name, /* typicallyStartsUpwind */!mayStartWithNoUpwindLeg.contains(name.toLowerCase()));
|
return getOrCreateBoatClass(name, /* typicallyStartsUpwind */!mayStartWithNoUpwindLeg.contains(name.toLowerCase()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Competitor getExistingCompetitorById(Serializable competitorId) {
|
public DynamicCompetitor getExistingCompetitorById(Serializable competitorId) {
|
||||||
return competitorCache.get(competitorId);
|
return competitorCache.get(competitorId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Competitor createCompetitor(Serializable id, String name, Team team, Boat boat) {
|
public DynamicCompetitor createCompetitor(Serializable id, String name, DynamicTeam team, DynamicBoat boat) {
|
||||||
Competitor result = new CompetitorImpl(id, name, team, boat);
|
DynamicCompetitor result = new CompetitorImpl(id, name, team, boat);
|
||||||
competitorCache.put(id, result);
|
competitorCache.put(id, result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Team team, Boat boat) {
|
public DynamicCompetitor getOrCreateCompetitor(Serializable competitorId, String name, DynamicTeam team, DynamicBoat boat) {
|
||||||
Competitor result = getExistingCompetitorById(competitorId);
|
DynamicCompetitor result = getExistingCompetitorById(competitorId);
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
result = createCompetitor(competitorId, name, team, boat);
|
result = createCompetitor(competitorId, name, team, boat);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DynamicCompetitor getOrCreateDynamicCompetitor(UUID competitorId, String name, DynamicTeam team,
|
||||||
|
DynamicBoat boat) {
|
||||||
|
return getOrCreateCompetitor(competitorId, name, team, boat);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CourseArea getOrCreateCourseArea(Serializable courseAreaId, String name) {
|
public CourseArea getOrCreateCourseArea(Serializable courseAreaId, String name) {
|
||||||
|
|||||||
Reference in new issue
Block a user