mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-20 03:00:00 +00:00
Merge branch 'master' into bug4227
This commit is contained in:
commit
034976e52e
23 files changed
+371
-76
No files matched your search
@@ -1,5 +1,5 @@
|
||||
raceInRegattaOfEvent=Carrera {0} en regata ''{1}'' de evento ''{2}''
|
||||
raceInFleetInRegattaOfEvent=Carrera {0} ({3})en regata ''{1}'' de evento ''{2}''
|
||||
raceInFleetInRegattaOfEvent=Carrera {0} ({3}) en regata ''{1}'' de evento ''{2}''
|
||||
leaderboardOfEvent=Clasificación ''{0}'' de evento ''{1}''
|
||||
|
||||
leaderboardShowResultsLinkTitle=Mostrar resultados
|
||||
|
||||
@@ -398,7 +398,6 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
|
||||
* The name of the venue of the event
|
||||
* @param isPublic
|
||||
* Indicates whether the event is public accessible via the publication URL or not
|
||||
* @param baseURL TODO
|
||||
* @return The new event
|
||||
*/
|
||||
void updateEvent(UUID id, String eventName, String eventDescription, TimePoint startDate, TimePoint endDate,
|
||||
|
||||
+5
-10
@@ -2,7 +2,6 @@ package com.sap.sailing.server.impl;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.Serializable;
|
||||
import java.net.URI;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver;
|
||||
@@ -50,7 +49,7 @@ public class PersistentCompetitorStore extends TransientCompetitorStoreImpl impl
|
||||
storeTo.removeAllCompetitors();
|
||||
} else {
|
||||
for (Competitor competitor : loadFrom.loadAllCompetitors()) {
|
||||
addCompetitorToTransientStore(competitor.getId(), competitor);
|
||||
super.addNewCompetitor(competitor);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -76,14 +75,10 @@ public class PersistentCompetitorStore extends TransientCompetitorStoreImpl impl
|
||||
storeTo = PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory();
|
||||
}
|
||||
|
||||
private void addCompetitorToTransientStore(Serializable id, Competitor competitor) {
|
||||
super.addNewCompetitor(id, competitor);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addNewCompetitor(Serializable id, Competitor competitor) {
|
||||
protected void addNewCompetitor(Competitor competitor) {
|
||||
storeTo.storeCompetitor(competitor);
|
||||
super.addNewCompetitor(id, competitor);
|
||||
super.addNewCompetitor(competitor);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -109,8 +104,8 @@ public class PersistentCompetitorStore extends TransientCompetitorStoreImpl impl
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCompetitors(Iterable<Competitor> competitors) {
|
||||
public void addNewCompetitors(Iterable<Competitor> competitors) {
|
||||
storeTo.storeCompetitors(competitors);
|
||||
super.addCompetitors(competitors);
|
||||
super.addNewCompetitors(competitors);
|
||||
}
|
||||
}
|
||||
+16
-5
@@ -200,6 +200,7 @@ import com.sap.sailing.server.operationaltransformation.AddMediaTrackOperation;
|
||||
import com.sap.sailing.server.operationaltransformation.AddRaceDefinition;
|
||||
import com.sap.sailing.server.operationaltransformation.AddSpecificRegatta;
|
||||
import com.sap.sailing.server.operationaltransformation.ConnectTrackedRaceToLeaderboardColumn;
|
||||
import com.sap.sailing.server.operationaltransformation.CreateCompetitor;
|
||||
import com.sap.sailing.server.operationaltransformation.CreateEvent;
|
||||
import com.sap.sailing.server.operationaltransformation.CreateOrUpdateDataImportProgress;
|
||||
import com.sap.sailing.server.operationaltransformation.CreateOrUpdateDeviceConfiguration;
|
||||
@@ -678,11 +679,21 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
this.competitorStore.addCompetitorUpdateListener(new CompetitorUpdateListener() {
|
||||
@Override
|
||||
public void competitorUpdated(Competitor competitor) {
|
||||
replicate(new UpdateCompetitor(competitor.getId().toString(), competitor.getName(), competitor
|
||||
.getColor(), competitor.getEmail(), competitor.getBoat().getSailID(), competitor.getTeam().getNationality(),
|
||||
competitor.getTeam().getImage(), competitor.getFlagImage(),
|
||||
competitor.getTimeOnTimeFactor(), competitor.getTimeOnDistanceAllowancePerNauticalMile(),
|
||||
competitor.getSearchTag()));
|
||||
replicate(new UpdateCompetitor(competitor.getId().toString(), competitor.getName(),
|
||||
competitor.getColor(), competitor.getEmail(), competitor.getBoat().getSailID(),
|
||||
competitor.getTeam().getNationality(), competitor.getTeam().getImage(),
|
||||
competitor.getFlagImage(), competitor.getTimeOnTimeFactor(),
|
||||
competitor.getTimeOnDistanceAllowancePerNauticalMile(), competitor.getSearchTag()));
|
||||
}
|
||||
@Override
|
||||
public void competitorCreated(Competitor competitor) {
|
||||
replicate(new CreateCompetitor(competitor.getId(), competitor.getName(),
|
||||
competitor.getBoat()==null?null:competitor.getBoat().getBoatClass()==null?null:competitor.getBoat().getBoatClass().getName(),
|
||||
competitor.getColor(), competitor.getEmail(),
|
||||
competitor.getFlagImage(), competitor.getBoat()==null?null:competitor.getBoat().getSailID(),
|
||||
competitor.getTeam()==null?null:competitor.getTeam().getNationality(),
|
||||
competitor.getTimeOnTimeFactor(),
|
||||
competitor.getTimeOnDistanceAllowancePerNauticalMile(), competitor.getSearchTag()));
|
||||
}
|
||||
});
|
||||
this.dataImportLock = new DataImportLockWithProgress();
|
||||
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
package com.sap.sailing.server.operationaltransformation;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.net.URI;
|
||||
import java.util.Collections;
|
||||
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Nationality;
|
||||
import com.sap.sailing.domain.base.CompetitorStore.CompetitorUpdateListener;
|
||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||
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.TeamImpl;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sailing.server.RacingEventServiceOperation;
|
||||
import com.sap.sailing.server.impl.RacingEventServiceImpl;
|
||||
import com.sap.sse.common.Color;
|
||||
import com.sap.sse.common.Duration;
|
||||
|
||||
public class CreateCompetitor extends AbstractRacingEventServiceOperation<Competitor> {
|
||||
private static final long serialVersionUID = 1172181354320184263L;
|
||||
private final Serializable competitorId;
|
||||
private final String name;
|
||||
private final String boatClassName;
|
||||
private final Color displayColor;
|
||||
private final String email;
|
||||
private final URI flagImageUri;
|
||||
private final String sailId;
|
||||
private final Nationality nationality;
|
||||
private final Double timeOnTimeFactor;
|
||||
private final Duration timeOnDistanceAllowancePerNauticalMile;
|
||||
private final String searchTag;
|
||||
|
||||
public CreateCompetitor(Serializable competitorId, String name, String boatClassName, Color displayColor,
|
||||
String email, URI flagImageUri, String sailId, Nationality nationality,
|
||||
Double timeOnTimeFactor, Duration timeOnDistanceAllowancePerNauticalMile, String searchTag) {
|
||||
super();
|
||||
this.competitorId = competitorId;
|
||||
this.name = name;
|
||||
this.boatClassName = boatClassName;
|
||||
this.displayColor = displayColor;
|
||||
this.email = email;
|
||||
this.flagImageUri = flagImageUri;
|
||||
this.sailId = sailId;
|
||||
this.nationality = nationality;
|
||||
this.timeOnTimeFactor = timeOnTimeFactor;
|
||||
this.timeOnDistanceAllowancePerNauticalMile = timeOnDistanceAllowancePerNauticalMile;
|
||||
this.searchTag = searchTag;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link #internalApplyTo(RacingEventService)} already replicates the effects; see {@link RacingEventServiceImpl#RacingEventServiceImpl()}
|
||||
* where a {@link CompetitorUpdateListener} is registered that handles replication of competitor creations
|
||||
*/
|
||||
@Override
|
||||
public boolean isRequiresExplicitTransitiveReplication() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Competitor internalApplyTo(RacingEventService toState) throws Exception {
|
||||
BoatClass boatClass = toState.getBaseDomainFactory().getOrCreateBoatClass(boatClassName);
|
||||
DynamicPerson sailor = new PersonImpl(name, nationality, null, null);
|
||||
DynamicTeam team = new TeamImpl(name + " team", Collections.singleton(sailor), null);
|
||||
DynamicBoat boat = new BoatImpl(name + " boat", boatClass, sailId);
|
||||
final Competitor result = toState.getBaseDomainFactory().getCompetitorStore()
|
||||
.getOrCreateCompetitor(competitorId, name, displayColor, email, flagImageUri,
|
||||
team, boat, timeOnTimeFactor, timeOnDistanceAllowancePerNauticalMile, searchTag);
|
||||
return result;
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
}
|
||||
+4
-1
@@ -4,8 +4,10 @@ import java.net.URI;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Nationality;
|
||||
import com.sap.sailing.domain.base.CompetitorStore.CompetitorUpdateListener;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sailing.server.RacingEventServiceOperation;
|
||||
import com.sap.sailing.server.impl.RacingEventServiceImpl;
|
||||
import com.sap.sse.common.Color;
|
||||
import com.sap.sse.common.Duration;
|
||||
|
||||
@@ -48,7 +50,8 @@ public class UpdateCompetitor extends AbstractRacingEventServiceOperation<Compet
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link #internalApplyTo(RacingEventService)} already replicates the effects
|
||||
* {@link #internalApplyTo(RacingEventService)} already replicates the effects; see {@link RacingEventServiceImpl#RacingEventServiceImpl()}
|
||||
* where a {@link CompetitorUpdateListener} is registered that handles replication of any updates to a competitor.
|
||||
*/
|
||||
@Override
|
||||
public boolean isRequiresExplicitTransitiveReplication() {
|
||||
|
||||
Reference in new issue
Block a user