diff --git a/doc/SAP RaceCommittee App.docx b/doc/SAP RaceCommittee App.docx new file mode 100644 index 00000000000..14d7d00cb02 Binary files /dev/null and b/doc/SAP RaceCommittee App.docx differ diff --git a/java/com.sap.sailing.datamining.test/src/com/sap/sailing/datamining/test/util/NullProcessor.java b/java/com.sap.sailing.datamining.test/src/com/sap/sailing/datamining/test/util/NullProcessor.java index 8976eb992fe..1b11cebb872 100644 --- a/java/com.sap.sailing.datamining.test/src/com/sap/sailing/datamining/test/util/NullProcessor.java +++ b/java/com.sap.sailing.datamining.test/src/com/sap/sailing/datamining/test/util/NullProcessor.java @@ -8,10 +8,14 @@ public class NullProcessor extends AbstractProcessor inputType, Class resultType) { super(inputType, resultType); } + + @Override + public boolean canProcessElements() { + return true; + } @Override public void processElement(InputType element) { - } @Override @@ -21,12 +25,20 @@ public class NullProcessor extends AbstractProcessor { + AbstractRetrievalProcessor { public CompetitorOfRaceInLeaderboardRetrievalProcessor(ExecutorService executor, Collection> resultReceivers, int retrievalLevel) { diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/GPSFixRetrievalProcessor.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/GPSFixRetrievalProcessor.java index 0b8e5532497..9d375faac1f 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/GPSFixRetrievalProcessor.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/GPSFixRetrievalProcessor.java @@ -12,9 +12,9 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; import com.sap.sse.datamining.components.Processor; -import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor; +import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor; -public class GPSFixRetrievalProcessor extends AbstractSimpleRetrievalProcessor { +public class GPSFixRetrievalProcessor extends AbstractRetrievalProcessor { public GPSFixRetrievalProcessor(ExecutorService executor, Collection> resultReceivers, int retrievalLevel) { super(HasTrackedLegOfCompetitorContext.class, HasGPSFixContext.class, executor, resultReceivers, retrievalLevel); diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardGroupRetrievalProcessor.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardGroupRetrievalProcessor.java index deb4030e573..dc3857ce70d 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardGroupRetrievalProcessor.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardGroupRetrievalProcessor.java @@ -8,10 +8,9 @@ import com.sap.sailing.datamining.impl.data.LeaderboardGroupWithContext; import com.sap.sailing.polars.PolarDataService; import com.sap.sailing.server.RacingEventService; import com.sap.sse.datamining.components.Processor; -import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor; +import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor; -public class LeaderboardGroupRetrievalProcessor extends - AbstractSimpleRetrievalProcessor { +public class LeaderboardGroupRetrievalProcessor extends AbstractRetrievalProcessor { public LeaderboardGroupRetrievalProcessor(ExecutorService executor, Collection> resultReceivers, int retrievalLevel) { diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardRetrievalProcessor.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardRetrievalProcessor.java index fea7c3b1cb7..50d1f60879e 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardRetrievalProcessor.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/LeaderboardRetrievalProcessor.java @@ -9,10 +9,9 @@ import com.sap.sailing.datamining.impl.data.LeaderboardGroupWithContext; import com.sap.sailing.datamining.impl.data.LeaderboardWithContext; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sse.datamining.components.Processor; -import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor; +import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor; -public class LeaderboardRetrievalProcessor extends - AbstractSimpleRetrievalProcessor { +public class LeaderboardRetrievalProcessor extends AbstractRetrievalProcessor { public LeaderboardRetrievalProcessor(ExecutorService executor, Collection> resultReceivers, int retrievalLevel) { diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/MarkPassingRetrievalProcessor.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/MarkPassingRetrievalProcessor.java index 6065d611818..537acff7c8a 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/MarkPassingRetrievalProcessor.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/MarkPassingRetrievalProcessor.java @@ -1,11 +1,11 @@ package com.sap.sailing.datamining.impl.components; import java.util.Collection; +import java.util.HashSet; import java.util.NavigableSet; import java.util.Set; import java.util.concurrent.ExecutorService; -import java.util.HashSet; import com.sap.sailing.datamining.data.HasMarkPassingContext; import com.sap.sailing.datamining.data.HasTrackedRaceContext; import com.sap.sailing.datamining.impl.data.MarkPassingWithContext; @@ -13,10 +13,9 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sse.datamining.components.Processor; -import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor; +import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor; -public class MarkPassingRetrievalProcessor extends - AbstractSimpleRetrievalProcessor { +public class MarkPassingRetrievalProcessor extends AbstractRetrievalProcessor { public MarkPassingRetrievalProcessor(ExecutorService executor, Collection> resultReceivers, int retrievalLevel) { diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedLegOfCompetitorRetrievalProcessor.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedLegOfCompetitorRetrievalProcessor.java index 8298d7d3d0a..9e8ea01aaff 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedLegOfCompetitorRetrievalProcessor.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedLegOfCompetitorRetrievalProcessor.java @@ -9,10 +9,9 @@ import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext; import com.sap.sailing.datamining.impl.data.TrackedLegOfCompetitorWithContext; import com.sap.sailing.domain.base.Competitor; import com.sap.sse.datamining.components.Processor; -import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor; +import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor; -public class TrackedLegOfCompetitorRetrievalProcessor extends - AbstractSimpleRetrievalProcessor { +public class TrackedLegOfCompetitorRetrievalProcessor extends AbstractRetrievalProcessor { public TrackedLegOfCompetitorRetrievalProcessor(ExecutorService executor, Collection> resultReceivers, int retrievalLevel) { diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedLegRetrievalProcessor.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedLegRetrievalProcessor.java index 22c616f4be7..b20f1f62fb5 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedLegRetrievalProcessor.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedLegRetrievalProcessor.java @@ -9,10 +9,9 @@ import com.sap.sailing.datamining.data.HasTrackedRaceContext; import com.sap.sailing.datamining.impl.data.TrackedLegWithContext; import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sse.datamining.components.Processor; -import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor; +import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor; -public class TrackedLegRetrievalProcessor extends - AbstractSimpleRetrievalProcessor { +public class TrackedLegRetrievalProcessor extends AbstractRetrievalProcessor { public TrackedLegRetrievalProcessor(ExecutorService executor, Collection> resultReceivers, int retrievalLevel) { diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedRaceRetrievalProcessor.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedRaceRetrievalProcessor.java index d22f810047e..da25ce0128b 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedRaceRetrievalProcessor.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/TrackedRaceRetrievalProcessor.java @@ -12,10 +12,9 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sse.datamining.components.Processor; -import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor; +import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor; -public class TrackedRaceRetrievalProcessor extends - AbstractSimpleRetrievalProcessor { +public class TrackedRaceRetrievalProcessor extends AbstractRetrievalProcessor { public TrackedRaceRetrievalProcessor(ExecutorService executor, Collection> resultReceivers, int retrievalLevel) { diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTO.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTO.java index 6b6c4ab773b..f4faa1dc51d 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTO.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTO.java @@ -33,6 +33,8 @@ public interface CompetitorDTO extends Serializable, MappableToDevice { */ CompetitorDTO getCompetitorFromPrevious(LeaderboardDTO previousVersion); + String getFlagImageURL(); + String getImageURL(); } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTOImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTOImpl.java index edb471564f3..bfa810c6a87 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTOImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CompetitorDTOImpl.java @@ -24,11 +24,12 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial private String idAsString; private BoatClassDTO boatClass; private String imageURL; + private String flagImageURL; public CompetitorDTOImpl() {} public CompetitorDTOImpl(String name, Color color, String email, String twoLetterIsoCountryCode, String threeLetterIocCountryCode, - String countryName, String sailID, String idAsString, String imageURL, BoatClassDTO boatClass) { + String countryName, String sailID, String idAsString, String imageURL, String flagImageURL, BoatClassDTO boatClass) { super(name); this.color = color; this.email = email; @@ -37,8 +38,9 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial this.countryName = countryName; this.sailID = sailID; this.idAsString = idAsString; - this.boatClass = boatClass; this.imageURL = imageURL; + this.flagImageURL = flagImageURL; + this.boatClass = boatClass; } @Override @@ -52,6 +54,7 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial result = prime * result + ((email == null) ? 0 : email.hashCode()); result = prime * result + ((threeLetterIocCountryCode == null) ? 0 : threeLetterIocCountryCode.hashCode()); result = prime * result + ((imageURL == null) ? 0 : imageURL.hashCode()); + result = prime * result + ((flagImageURL == null) ? 0 : flagImageURL.hashCode()); return result; } @@ -99,6 +102,11 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial return false; } else if (!imageURL.equals(other.imageURL)) return false; + if (flagImageURL == null) { + if (other.flagImageURL != null) + return false; + } else if (!flagImageURL.equals(other.flagImageURL)) + return false; return true; } @@ -127,6 +135,11 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial return imageURL; } + @Override + public String getFlagImageURL() { + return flagImageURL; + } + @Override public String getIdAsString() { return idAsString; diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PreviousCompetitorDTOImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PreviousCompetitorDTOImpl.java index ea7cbc6caec..ef2d6e097e1 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PreviousCompetitorDTOImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PreviousCompetitorDTOImpl.java @@ -105,6 +105,12 @@ public class PreviousCompetitorDTOImpl implements CompetitorDTO { " need to be replaced by an object of "+CompetitorDTOImpl.class.getName()+" after deserialization"); } + @Override + public String getFlagImageURL() { + throw new RuntimeException("Internal error. Objects of type "+PreviousCompetitorDTOImpl.class.getName()+ + " need to be replaced by an object of "+CompetitorDTOImpl.class.getName()+" after deserialization"); + } + @Override public CompetitorDTO getCompetitorFromPrevious(LeaderboardDTO previousVersion) { return previousVersion.competitors.get(indexInPreviousCompetitorList); diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/PolarSheetGenerationSettingsImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/PolarSheetGenerationSettingsImpl.java index 05abcd90c0a..cf30e830bfa 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/PolarSheetGenerationSettingsImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/PolarSheetGenerationSettingsImpl.java @@ -4,8 +4,9 @@ import java.util.ArrayList; import java.util.List; import com.sap.sailing.domain.common.PolarSheetGenerationSettings; +import com.sap.sse.common.settings.AbstractSettings; -public class PolarSheetGenerationSettingsImpl implements PolarSheetGenerationSettings { +public class PolarSheetGenerationSettingsImpl extends AbstractSettings implements PolarSheetGenerationSettings { public static PolarSheetGenerationSettings createStandardPolarSettings() { double[] levels = { 4., 6., 8., 10., 12., 14., 16., 20., 25., 30. }; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java index 3b9145e75c2..0067b03a8a3 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java @@ -40,7 +40,7 @@ public class AbstractGPSFixStoreTest { protected final DeviceIdentifier device = new SmartphoneImeiIdentifier("a"); protected RaceLog raceLog; protected GPSFixStore store; - protected final Competitor comp = DomainFactory.INSTANCE.getOrCreateCompetitor("comp", "comp", null, null, null, null); + protected final Competitor comp = DomainFactory.INSTANCE.getOrCreateCompetitor("comp", "comp", null, null, null, null, null); protected final Mark mark = DomainFactory.INSTANCE.getOrCreateMark("mark"); private final AbstractLogEventAuthor author = new LogEventAuthorImpl("author", 0); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java index b5a56e1be5d..31ac8b33011 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java @@ -168,7 +168,7 @@ public class CreateAndTrackWithRaceLogTest { assertFalse(raceLog.isEmpty()); // add a mapping and one fix in, one out of mapping - Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null, null); + Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null, null, null); DeviceIdentifier dev1 = new SmartphoneImeiIdentifier("dev1"); raceLog.add(factory.createDeviceCompetitorMappingEvent(t(), author, dev1, comp1, 0, t(0), t(10))); addFixes0(dev1); @@ -202,7 +202,7 @@ public class CreateAndTrackWithRaceLogTest { adapter.denoteRaceForRaceLogTracking(service, leaderboard, column, fleet, "race"); // add a mapping and one fix in, one out of mapping - Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null, null); + Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null, null, null); DeviceIdentifier dev1 = new SmartphoneImeiIdentifier("dev1"); regattaLog.add(new RegattaLogDeviceCompetitorMappingEventImpl(t(), author, t(), UUID.randomUUID(), comp1, dev1, t(0), t(10))); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java index e2675a0d354..394f75faa3d 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java @@ -49,7 +49,7 @@ public class TrackedRaceLoadsFixesTest extends AbstractGPSFixStoreTest { @Test public void areFixesStoredInDb() throws TransformationException, NoCorrespondingServiceRegisteredException, InterruptedException { - Competitor comp2 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp2", "comp2", null, null, null, null); + Competitor comp2 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp2", "comp2", null, null, null, null, null); Mark mark2 = DomainFactory.INSTANCE.getOrCreateMark("mark2"); DeviceIdentifier device2 = new SmartphoneImeiIdentifier("imei2"); DeviceIdentifier device3 = new SmartphoneImeiIdentifier("imei3"); diff --git a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/MultiLogAnalyzerTest.java b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/MultiLogAnalyzerTest.java index fe618620b4c..6cd0ae4aa33 100644 --- a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/MultiLogAnalyzerTest.java +++ b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/MultiLogAnalyzerTest.java @@ -52,7 +52,7 @@ public class MultiLogAnalyzerTest { private AbstractLogEventAuthor author; private static Competitor createCompetitor(int n) { - return new CompetitorImpl(n, n + "", null, null, null, null); + return new CompetitorImpl(n, n + "", null, null, null, null, null); } private static DeviceIdentifier createDevice() { diff --git a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/tracking/analyzing/test/DeviceMappingFinderTest.java b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/tracking/analyzing/test/DeviceMappingFinderTest.java index 8eb28322665..c7c2ff1d1ee 100644 --- a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/tracking/analyzing/test/DeviceMappingFinderTest.java +++ b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/tracking/analyzing/test/DeviceMappingFinderTest.java @@ -22,8 +22,8 @@ import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; public class DeviceMappingFinderTest extends AbstractRaceLogTrackingTest { - private final Competitor competitor = new CompetitorImpl("comp", "Comp", null, null, null, null); - private final Competitor competitor2 = new CompetitorImpl("comp2", "Comp2", null, null, null, null); + private final Competitor competitor = new CompetitorImpl("comp", "Comp", null, null, null, null, null); + private final Competitor competitor2 = new CompetitorImpl("comp2", "Comp2", null, null, null, null, null); private final DeviceIdentifier device = new SmartphoneImeiIdentifier("imei"); private int time = 0; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/Competitor.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/Competitor.java index 8d65ec10e49..7c82fbfc8ac 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/Competitor.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/Competitor.java @@ -1,5 +1,7 @@ package com.sap.sailing.domain.base; +import java.net.URI; + import com.sap.sse.common.Color; import com.sap.sse.common.IsManagedByCache; import com.sap.sse.common.Named; @@ -18,7 +20,13 @@ public interface Competitor extends Named, WithID, IsManagedByCache listeners; private String email; + private URI flagImage; - public CompetitorImpl(Serializable id, String name, Color color, String email, DynamicTeam team, DynamicBoat boat) { + public CompetitorImpl(Serializable id, String name, Color color, String email, URI flagImage, DynamicTeam team, DynamicBoat boat) { this.id = id; this.name = name; this.team = team; this.boat = boat; this.color = color; this.email = email; + this.flagImage = flagImage; this.listeners = new HashSet(); } @@ -75,7 +78,7 @@ public class CompetitorImpl implements DynamicCompetitor { @Override public Competitor resolve(SharedDomainFactory domainFactory) { - Competitor result = domainFactory.getOrCreateCompetitor(getId(), getName(), getColor(), getEmail(), getTeam(), getBoat()); + Competitor result = domainFactory.getOrCreateCompetitor(getId(), getName(), getColor(), getEmail(), getFlagImage(), getTeam(), getBoat()); return result; } @@ -134,4 +137,14 @@ public class CompetitorImpl implements DynamicCompetitor { public boolean hasEmail(){ return email != null && !email.isEmpty(); } + + @Override + public URI getFlagImage() { + return flagImage; + } + + @Override + public void setFlagImage(URI flagImage) { + this.flagImage = flagImage; + } } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/DynamicCompetitor.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/DynamicCompetitor.java index 4b6a86578f0..a748229a5a3 100755 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/DynamicCompetitor.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/DynamicCompetitor.java @@ -1,5 +1,7 @@ package com.sap.sailing.domain.base.impl; +import java.net.URI; + import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.common.Renamable; import com.sap.sse.common.Color; @@ -12,4 +14,6 @@ public interface DynamicCompetitor extends Competitor, Renamable { void setColor(Color displayColor); void setEmail(String email); + + void setFlagImage(URI flagImage); } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SharedDomainFactoryImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SharedDomainFactoryImpl.java index 3e6a0ecf5d0..35602ff97bd 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SharedDomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SharedDomainFactoryImpl.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; +import java.net.URI; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; @@ -332,11 +333,11 @@ public class SharedDomainFactoryImpl implements SharedDomainFactory { } @Override - public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, DynamicTeam team, DynamicBoat boat) { + public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, URI flagImage, DynamicTeam team, DynamicBoat boat) { if (logger.isLoggable(Level.FINEST)) { logger.log(Level.FINEST, "getting or creating competitor "+name+" with ID "+competitorId+" in domain factory "+this); } - return getCompetitorStore().getOrCreateCompetitor(competitorId, name, displayColor, email, team, boat); + return getCompetitorStore().getOrCreateCompetitor(competitorId, name, displayColor, email, flagImage, team, boat); } @Override diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TransientCompetitorStoreImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TransientCompetitorStoreImpl.java index 6caca851d02..6e56b9cbf9b 100755 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TransientCompetitorStoreImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TransientCompetitorStoreImpl.java @@ -68,8 +68,8 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab listeners.remove(listener); } - private Competitor createCompetitor(Serializable id, String name, Color displayColor, String email, DynamicTeam team, DynamicBoat boat) { - Competitor result = new CompetitorImpl(id, name, displayColor, email, team, boat); + private Competitor createCompetitor(Serializable id, String name, Color displayColor, String email, URI flagImage, DynamicTeam team, DynamicBoat boat) { + Competitor result = new CompetitorImpl(id, name, displayColor, email, flagImage, team, boat); addNewCompetitor(id, result); if (logger.isLoggable(Level.FINEST)) { logger.log(Level.FINEST, "Created competitor "+name+" with ID "+id, new Exception("Here is where it happened")); @@ -93,21 +93,21 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab } @Override - public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, DynamicTeam team, DynamicBoat boat) { + public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, URI flagImage, DynamicTeam team, DynamicBoat boat) { Competitor result = getExistingCompetitorById(competitorId); // avoid synchronization for successful read access if (result == null) { LockUtil.lockForWrite(lock); try { result = getExistingCompetitorById(competitorId); // try again, now while holding the write lock if (result == null) { - result = createCompetitor(competitorId, name, displayColor, email, team, boat); + result = createCompetitor(competitorId, name, displayColor, email, flagImage, team, boat); } } finally { LockUtil.unlockAfterWrite(lock); } } else if (isCompetitorToUpdateDuringGetOrCreate(result)) { updateCompetitor(result.getId().toString(), name, displayColor, email, boat.getSailID(), team.getNationality(), - team.getImage()); + team.getImage(), flagImage); competitorNoLongerToUpdateDuringGetOrCreate(result); } return result; @@ -192,7 +192,7 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab @Override public Competitor updateCompetitor(String idAsString, String newName, Color newDisplayColor, String newEmail, String newSailId, - Nationality newNationality, URI newTeamImageUri) { + Nationality newNationality, URI newTeamImageUri, URI newFlagImageUri) { DynamicCompetitor competitor = (DynamicCompetitor) getExistingCompetitorByIdAsString(idAsString); if (competitor != null) { LockUtil.lockForWrite(lock); @@ -200,6 +200,7 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab competitor.setName(newName); competitor.setColor(newDisplayColor); competitor.setEmail(newEmail); + competitor.setFlagImage(newFlagImageUri); competitor.getBoat().setSailId(newSailId); competitor.getTeam().setNationality(newNationality); competitor.getTeam().setImage(newTeamImageUri); @@ -233,7 +234,9 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab competitorDTO = new CompetitorDTOImpl(c.getName(), c.getColor(), c.getEmail(), countryCode == null ? "" : countryCode.getTwoLetterISOCode(), countryCode == null ? "" : countryCode.getThreeLetterIOCCode(), countryCode == null ? "" : countryCode.getName(), - c.getBoat().getSailID(), c.getId().toString(), c.getTeam().getImage() == null ? null : c.getTeam().getImage().toString(), + c.getBoat().getSailID(), c.getId().toString(), + c.getTeam().getImage() == null ? null : c.getTeam().getImage().toString(), + c.getFlagImage() == null ? null : c.getFlagImage().toString(), new BoatClassDTO(c.getBoat().getBoatClass() .getName(), c.getBoat().getBoatClass().getDisplayName(), c.getBoat().getBoatClass().getHullLength().getMeters())); weakCompetitorDTOCache.put(c, competitorDTO); diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java index 40cae90e90a..769fa9b6dd8 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java @@ -124,7 +124,7 @@ public class DomainFactoryImpl implements DomainFactory { teamMembers.add(person); } DynamicTeam team = new TeamImpl(competitor.getName(), teamMembers, /* coach */ null); - result = competitorStore.getOrCreateCompetitor(competitor.getID(), competitor.getName(), null /*displayColor*/, null /*email*/, team, boat); + result = competitorStore.getOrCreateCompetitor(competitor.getID(), competitor.getName(), null /*displayColor*/, null /*email*/, null, team, boat); } return result; } @@ -140,7 +140,7 @@ public class DomainFactoryImpl implements DomainFactory { } DynamicTeam team = new TeamImpl(competitor.getName(), teamMembers, /* coach */ null); result = baseDomainFactory.getCompetitorStore().getOrCreateCompetitor(getCompetitorID(competitor.getBoatID(), raceId, boatClass), - competitor.getName(), null /*displayColor*/, null /*email*/, team, boat); + competitor.getName(), null /*displayColor*/, null /*email*/, null, team, boat); return result; } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java index 8127d756a5e..c3867050af1 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java @@ -233,7 +233,7 @@ public class LeaderboardDTODiffingTest { public void testCompetitorListChange() { newVersion.competitors = new ArrayList(newVersion.competitors); // clone competitor list so it's not identical to that of previous version CompetitorDTO somebodyNew = new CompetitorDTOImpl("Someone New", Color.RED, "someone@nobody.de", "DE", "GER", "Germany", "GER 1234", "912p09871203987", - /* imageURL */ null, new BoatClassDTO("505", 5.05)); + /* imageURL */ null, /* flagImageURL */ null, new BoatClassDTO("505", 5.05)); newVersion.competitors.add(13, somebodyNew); // insert a competitor; this should mess up all others' indexes; check if this works CompetitorDTO wolfgang = getPreviousCompetitorByName("HUNGER +JESS"); newVersion.competitors.remove(wolfgang); @@ -253,7 +253,7 @@ public class LeaderboardDTODiffingTest { newVersion.setSuppressedCompetitors(newSuppressedCompetitors); newVersion.competitors = new ArrayList(newVersion.competitors); // clone competitor list so it's not identical to that of previous version CompetitorDTO somebodyNew = new CompetitorDTOImpl("Someone New", Color.RED, "someone@nobody.de", "DE", "GER", "Germany", "GER 1234", "912p09871203987", - /* imageURL */ null, new BoatClassDTO("505", 5.05)); + /* imageURL */ null, /* flagImageURL */ null, new BoatClassDTO("505", 5.05)); newVersion.setSuppressed(newVersion.competitors.get(13), true); // suppress an existing competitor; compaction should reduce this to a single number only newVersion.setSuppressed(somebodyNew, true); // check that mixed mode with existing and new competitors works as well List newSuppressedCompetitorsBeforeStripping = new ArrayList(); @@ -275,7 +275,7 @@ public class LeaderboardDTODiffingTest { public void testDisplayNameChange() { newVersion.competitors = new ArrayList(newVersion.competitors); // clone competitor list so it's not identical to that of previous version CompetitorDTO somebodyNew = new CompetitorDTOImpl("Someone New", Color.RED, "someone@nobody.de", "DE", "GER", "Germany", "GER 1234", "912p09871203987", - /* imageURL */ null, new BoatClassDTO("505", 5.05)); + /* imageURL */ null, /* flagImageURL */ null, new BoatClassDTO("505", 5.05)); newVersion.competitors.add(somebodyNew); newVersion.competitorDisplayNames = new HashMap(newVersion.competitorDisplayNames); newVersion.competitorDisplayNames.put(newVersion.competitors.get(13), "Humba"); @@ -304,7 +304,7 @@ public class LeaderboardDTODiffingTest { newVersion.setCompetitorsFromBestToWorst(r9, newOrdering); newVersion.competitors = new ArrayList(newVersion.competitors); // clone competitor list so it's not identical to that of previous version CompetitorDTO somebodyNew = new CompetitorDTOImpl("Someone New", Color.RED, "someone@nobody.de", "DE", "GER", "Germany", "GER 1234", "912p09871203987", - /* imageURL */ null, new BoatClassDTO("505", 5.05)); + /* imageURL */ null, /* flagImageURL */ null, new BoatClassDTO("505", 5.05)); newVersion.competitors.add(somebodyNew); newOrdering.add(somebodyNew); CompetitorDTO formerRank13 = newOrdering.remove(13); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractLeaderboardTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractLeaderboardTest.java index 65e0817f4ee..9aa8999af6e 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractLeaderboardTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractLeaderboardTest.java @@ -15,7 +15,7 @@ import com.sap.sse.common.Color; public abstract class AbstractLeaderboardTest { public static CompetitorImpl createCompetitor(String competitorName) { - return new CompetitorImpl(competitorName, competitorName, Color.RED, null, new TeamImpl("STG", Collections.singleton( + return new CompetitorImpl(competitorName, competitorName, Color.RED, null, null, new TeamImpl("STG", Collections.singleton( new PersonImpl(competitorName, new NationalityImpl("GER"), /* dateOfBirth */ null, "This is famous "+competitorName)), new PersonImpl("Rigo van Maas", new NationalityImpl("NED"), @@ -24,7 +24,7 @@ public abstract class AbstractLeaderboardTest { } public static Competitor createCompetitor(String competitorName, CompetitorFactory competitorFactory) { - return competitorFactory.getOrCreateCompetitor(competitorName, competitorName, Color.RED, "someone@nobody.de", new TeamImpl("STG", Collections.singleton( + return competitorFactory.getOrCreateCompetitor(competitorName, competitorName, Color.RED, "someone@nobody.de", null, new TeamImpl("STG", Collections.singleton( new PersonImpl(competitorName, new NationalityImpl("GER"), /* dateOfBirth */ null, "This is famous "+competitorName)), new PersonImpl("Rigo van Maas", new NationalityImpl("NED"), @@ -33,7 +33,7 @@ public abstract class AbstractLeaderboardTest { } public static CompetitorImpl createCompetitor(String competitorName, Serializable id) { - return new CompetitorImpl(id, competitorName, Color.RED, null, new TeamImpl("STG", Collections.singleton( + return new CompetitorImpl(id, competitorName, Color.RED, null, null, new TeamImpl("STG", Collections.singleton( new PersonImpl(competitorName, new NationalityImpl("GER"), /* dateOfBirth */ null, "This is famous "+competitorName)), new PersonImpl("Rigo van Maas", new NationalityImpl("NED"), diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java index 9e2febd92db..7f9205409e7 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java @@ -157,7 +157,7 @@ public class LeaderboardCourseChangeTest { Set competitors = new HashSet<>(); DynamicBoat mockedBoat = mock(DynamicBoat.class); when(mockedBoat.getBoatClass()).thenReturn(boatClass); - competitors.add(new CompetitorImpl(UUID.randomUUID(), "TestCompetitor", Color.BLACK, null, + competitors.add(new CompetitorImpl(UUID.randomUUID(), "TestCompetitor", Color.BLACK, null, null, mock(DynamicTeam.class), mockedBoat)); return competitors; } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OfflineSerializationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OfflineSerializationTest.java index f6d164910e6..d8cfe5df368 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OfflineSerializationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OfflineSerializationTest.java @@ -188,7 +188,7 @@ public class OfflineSerializationTest extends AbstractSerializationTest { DomainFactory senderDomainFactory = new DomainFactoryImpl(); DomainFactory receiverDomainFactory = new DomainFactoryImpl(); String competitorName = "Tina Maximiliane Lutz"; - Competitor sendersCompetitor1 = new CompetitorImpl(123, competitorName, Color.RED, null, new TeamImpl("STG", Collections.singleton( + Competitor sendersCompetitor1 = new CompetitorImpl(123, competitorName, Color.RED, null, null, new TeamImpl("STG", Collections.singleton( new PersonImpl(competitorName, senderDomainFactory.getOrCreateNationality("GER"), /* dateOfBirth */ null, "This is famous "+competitorName)), new PersonImpl("Rigo van Maas", senderDomainFactory.getOrCreateNationality("GER"), diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StoredTrackBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StoredTrackBasedTest.java index f4ed05c1067..cd5dc37c9c2 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StoredTrackBasedTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StoredTrackBasedTest.java @@ -117,7 +117,7 @@ public abstract class StoredTrackBasedTest extends TrackBasedTest { for (String competitorName : getCompetitorNamesOfStoredTracks(KIELER_WOCHE)) { DynamicPerson p = new PersonImpl(competitorName, /* nationality */ null, /* dateOfBirth */ null, /* description */ null); DynamicTeam t = new TeamImpl(competitorName, Collections.singleton(p), /* coach */ null); - Competitor c = new CompetitorImpl(competitorName, competitorName, Color.RED, null, t, new BoatImpl(competitorName, + Competitor c = new CompetitorImpl(competitorName, competitorName, Color.RED, null, null, t, new BoatImpl(competitorName, new BoatClassImpl("505", /* typicallyStartsUpwind */ true), null)); DynamicGPSFixTrack track = readTrack(c, KIELER_WOCHE); if (track != null) { diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TackTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TackTest.java index c35c9a31cc9..3de5b4fd264 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TackTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TackTest.java @@ -34,7 +34,7 @@ public class TackTest extends StoredTrackBasedTestWithTrackedRace { @Override @Before public void setUp() { - competitor = new CompetitorImpl(123, "Wolfgang Hunger", Color.RED, null, new TeamImpl("STG", Collections.singleton( + competitor = new CompetitorImpl(123, "Wolfgang Hunger", Color.RED, null, null, new TeamImpl("STG", Collections.singleton( new PersonImpl("Wolfgang Hunger", new NationalityImpl("GER"), /* dateOfBirth */null, "This is famous Wolfgang Hunger")), new PersonImpl("Rigo van Maas", new NationalityImpl("NED"), diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java index 1aeb6824c2a..f2214d28443 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java @@ -60,7 +60,7 @@ public abstract class TrackBasedTest { } public static CompetitorImpl createCompetitor(String competitorName) { - return new CompetitorImpl(UUID.randomUUID(), competitorName, Color.RED, null, new TeamImpl("STG", Collections.singleton( + return new CompetitorImpl(UUID.randomUUID(), competitorName, Color.RED, null, null, new TeamImpl("STG", Collections.singleton( new PersonImpl(competitorName, new NationalityImpl("GER"), /* dateOfBirth */null, "This is famous " + competitorName)), new PersonImpl("Rigo van Maas", new NationalityImpl("NED"), diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java index a67c89b62eb..de9bc16d430 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java @@ -270,7 +270,7 @@ public class WindTest { Waypoint w1 = domainFactory.createWaypoint(startFinish, /*passingInstruction*/ null); Waypoint w2 = domainFactory.createWaypoint(top, /*passingInstruction*/ null); Waypoint w3 = domainFactory.createWaypoint(startFinish, /*passingInstruction*/ null); - Competitor competitor = new CompetitorImpl(123, "Test Competitor", Color.RED, null, new TeamImpl("STG", Collections.singleton( + Competitor competitor = new CompetitorImpl(123, "Test Competitor", Color.RED, null, null, new TeamImpl("STG", Collections.singleton( new PersonImpl("Test Competitor", new NationalityImpl("GER"), /* dateOfBirth */null, "This is famous " + "Test Competitor")), new PersonImpl("Rigo van Maas", new NationalityImpl("NED"), diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java index cf2eca25619..e6853e2e40c 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java @@ -39,9 +39,9 @@ import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; public class AbstractMockedRaceMarkPassingTest { - protected Competitor ron = new CompetitorImpl("Ron", "Ron", null, null, null, null); - protected Competitor tom = new CompetitorImpl("Tom", "Tom", null, null, null, null); - protected Competitor ben = new CompetitorImpl("Ben", "Ben", null, null, null, null); + protected Competitor ron = new CompetitorImpl("Ron", "Ron", null, null, null, null, null); + protected Competitor tom = new CompetitorImpl("Tom", "Tom", null, null, null, null, null); + protected Competitor ben = new CompetitorImpl("Ben", "Ben", null, null, null, null, null); protected Mark m = new MarkImpl("Mark"); protected Mark gate1 = new MarkImpl("Gate1"); diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java index 5fc04b91021..cc0ed888875 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java @@ -258,7 +258,7 @@ public class DomainFactoryImpl implements DomainFactory { } DynamicTeam team = getOrCreateTeam(name, nationality, competitorId); DynamicBoat boat = new BoatImpl(shortName, boatClass, shortName); - result = competitorStore.getOrCreateCompetitor(competitorId, name, null /*displayColor*/, null /*email*/, team, boat); + result = competitorStore.getOrCreateCompetitor(competitorId, name, null /*displayColor*/, null /*email*/, null /*flagImag */, team, boat); } return result; } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DynamicCompetitorStore.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DynamicCompetitorStore.java index 3dffba3a7f5..fc488fd9b02 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DynamicCompetitorStore.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DynamicCompetitorStore.java @@ -1,6 +1,7 @@ package com.sap.sailing.domain.base.impl; import java.io.Serializable; +import java.net.URI; import com.sap.sailing.domain.base.CompetitorStore; import com.sap.sse.common.Color; @@ -10,7 +11,8 @@ public interface DynamicCompetitorStore extends CompetitorStore { DynamicCompetitor getExistingCompetitorById(Serializable competitorId); @Override - DynamicCompetitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, DynamicTeam team, DynamicBoat boat); + DynamicCompetitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, URI flagImage, + DynamicTeam team, DynamicBoat boat); @Override Iterable getCompetitors(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DummyMarkPassingWithTimePointOnly.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DummyMarkPassingWithTimePointOnly.java index a598b10a738..78d066ab656 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DummyMarkPassingWithTimePointOnly.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DummyMarkPassingWithTimePointOnly.java @@ -1,5 +1,7 @@ package com.sap.sailing.domain.tracking.impl; +import java.net.URI; + import com.sap.sailing.domain.base.Boat; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.CompetitorChangeListener; @@ -82,6 +84,11 @@ public class DummyMarkPassingWithTimePointOnly implements MarkPassing { public boolean hasEmail() { return false; } + + @Override + public URI getFlagImage() { + return null; + } }; } } diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PolarSheetGenerationServiceTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PolarSheetGenerationServiceTest.java index a1b49f798e8..1c7aead09ef 100755 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PolarSheetGenerationServiceTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PolarSheetGenerationServiceTest.java @@ -163,7 +163,7 @@ public class PolarSheetGenerationServiceTest { waypoints.add(new WaypointImpl(null)); waypoints.add(new WaypointImpl(null)); ArrayList competitors = new ArrayList(); - Competitor competitor = new CompetitorImpl(UUID.randomUUID(), "Hans Frantz", Color.RED, null, + Competitor competitor = new CompetitorImpl(UUID.randomUUID(), "Hans Frantz", Color.RED, null, null, new TeamImpl("SAP", null, null), new BoatImpl("Schnelle Forelle", forelle, "GER000")); competitors.add(competitor); RaceDefinition race = new RaceDefinitionImpl("Forelle1", new CourseImpl("ForelleCourse", waypoints), forelle, competitors); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages.java index e11db038d23..1d3e8f06b79 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages.java @@ -118,6 +118,7 @@ public interface TextMessages extends Messages { String eventRegattaRacesLegendVideo(); String eventRegattaRacesLegendAudio(); String eventSponsorsTitle(); + String footerJobs(); String footerCopyright(); String footerLanguage(); String footerLegal(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages.properties index 27643b84364..89290630dcd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages.properties @@ -110,6 +110,7 @@ eventRegattaRacesLegendWind=Wind Data eventRegattaRacesLegendVideo=Video Stream eventRegattaRacesLegendAudio=Audio Stream eventSponsorsTitle=Event Sponsorships +footerJobs=Jobs footerCopyright=\u00A9 2015 SAP Sailing Analytics footerLanguage=SAP Sailing offered in footerLegal=Legal Disclosure diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages_de.properties index 2b9576d605c..a0d670101dd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages_de.properties @@ -110,6 +110,7 @@ eventRegattaRacesLegendWind=Winddaten eventRegattaRacesLegendVideo=Video Stream eventRegattaRacesLegendAudio=Audio Stream eventSponsorsTitle=Veranstaltungssponsoren +footerJobs=Jobs footerCopyright=\u00A9 2015 SAP Sailing Analytics footerLanguage=SAP Sailing in footerLegal=Impressum diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalyticsDataManager.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalyticsDataManager.java index 70d405516dc..d6d9a959c04 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalyticsDataManager.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalyticsDataManager.java @@ -17,7 +17,7 @@ import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardCha import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; import com.sap.sse.common.Util; -import com.sap.sse.common.settings.Settings; +import com.sap.sse.common.settings.AbstractSettings; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; @@ -125,7 +125,7 @@ public class RegattaAnalyticsDataManager { showComponentSettingsDialog(multiCompetitorChart, null); } - protected void showComponentSettingsDialog(final Component component, String componentDisplayName) { + protected void showComponentSettingsDialog(final Component component, String componentDisplayName) { String componentName = componentDisplayName != null ? componentDisplayName : component.getLocalizedShortName(); String debugIdPrefix = DebugIdHelper.createDebugId(componentName); SettingsDialog dialog = new SettingsDialog(component, StringMessages.INSTANCE); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalyticsDataManager.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalyticsDataManager.java index 611b22b35fd..a9536a8e4b9 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalyticsDataManager.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalyticsDataManager.java @@ -19,7 +19,7 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; import com.sap.sailing.gwt.ui.leaderboard.MultiLeaderboardPanel; import com.sap.sse.common.Util; -import com.sap.sse.common.settings.Settings; +import com.sap.sse.common.settings.AbstractSettings; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; @@ -149,7 +149,7 @@ public class EventSeriesAnalyticsDataManager { showComponentSettingsDialog(multiCompetitorChart, null); } - protected void showComponentSettingsDialog(final Component component, String componentDisplayName) { + protected void showComponentSettingsDialog(final Component component, String componentDisplayName) { String componentName = componentDisplayName != null ? componentDisplayName : component.getLocalizedShortName(); String debugIdPrefix = DebugIdHelper.createDebugId(componentName); SettingsDialog dialog = new SettingsDialog(component, StringMessages.INSTANCE); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/footer/Footer.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/footer/Footer.ui.xml index 25644c9c2e8..539c3b3389e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/footer/Footer.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/footer/Footer.ui.xml @@ -8,7 +8,7 @@