mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-26 23:46:36 +00:00
changed updateLeaderboardGroup such that it uses String for Leaderboard identification; added more operations
This commit is contained in:
+6
-1
@@ -573,7 +573,12 @@ public class LeaderboardGroupConfigPanel extends AbstractEventPanel {
|
||||
}
|
||||
|
||||
private void updateGroup(final String oldGroupName, final LeaderboardGroupDTO groupToUpdate) {
|
||||
sailingService.updateLeaderboardGroup(oldGroupName, groupToUpdate.name, groupToUpdate.description, groupToUpdate.leaderboards, new AsyncCallback<Void>() {
|
||||
List<String> leaderboardNames = new ArrayList<String>();
|
||||
for (LeaderboardDTO leaderboardDTO : groupToUpdate.leaderboards) {
|
||||
leaderboardNames.add(leaderboardDTO.name);
|
||||
}
|
||||
sailingService.updateLeaderboardGroup(oldGroupName, groupToUpdate.name, groupToUpdate.description,
|
||||
leaderboardNames, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to update leaderboard group " + oldGroupName + ": "
|
||||
|
||||
+1
-1
@@ -167,7 +167,7 @@ public interface SailingService extends RemoteService {
|
||||
|
||||
LeaderboardGroupDTO createLeaderboardGroup(String groupName, String description);
|
||||
|
||||
void updateLeaderboardGroup(String oldName, String newName, String description, List<LeaderboardDTO> leaderboards);
|
||||
void updateLeaderboardGroup(String oldName, String newName, String description, List<String> leaderboardNames);
|
||||
|
||||
MultiCompetitorRaceDataDTO getCompetitorsRaceData(RaceIdentifier race, List<Pair<Date, CompetitorDTO>> competitors,
|
||||
Date toDate, long stepSize, DetailType detailType)
|
||||
|
||||
+2
-2
@@ -289,9 +289,9 @@ public interface SailingServiceAsync {
|
||||
* @param oldName The old name of the group
|
||||
* @param newName The new name of the group
|
||||
* @param description The new description of the group
|
||||
* @param leaderboards The new leaderboards of the group
|
||||
* @param leaderboardNames The list of names of the new leaderboards of the group
|
||||
*/
|
||||
void updateLeaderboardGroup(String oldName, String newName, String description, List<LeaderboardDTO> leaderboards, AsyncCallback<Void> callback);
|
||||
void updateLeaderboardGroup(String oldName, String newName, String description, List<String> leaderboardNames, AsyncCallback<Void> callback);
|
||||
|
||||
/**
|
||||
* Returns the mark passings and the data for the given {@link DetailType} of all competitors in
|
||||
|
||||
+4
-18
@@ -522,9 +522,9 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
@Override
|
||||
public void removeAndUntrackRace(EventAndRaceIdentifier eventAndRaceidentifier) throws Exception{
|
||||
Event event = getEvent(eventAndRaceidentifier);
|
||||
if(event!= null) {
|
||||
if (event!= null) {
|
||||
RaceDefinition race = getRace(eventAndRaceidentifier);
|
||||
if(race != null) {
|
||||
if (race != null) {
|
||||
getService().removeRace(event, race);
|
||||
}
|
||||
}
|
||||
@@ -1823,22 +1823,8 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLeaderboardGroup(String oldName, String newName, String description, List<LeaderboardDTO> leaderboards) {
|
||||
if (!oldName.equals(newName)) {
|
||||
getService().renameLeaderboardGroup(oldName, newName);
|
||||
}
|
||||
LeaderboardGroup group = getService().getLeaderboardGroupByName(newName);
|
||||
if (!description.equals(group.getDescription())) {
|
||||
group.setDescriptiom(description);
|
||||
}
|
||||
group.clearLeaderboards();
|
||||
for (LeaderboardDTO leaderboardDTO : leaderboards) {
|
||||
Leaderboard leaderboard = getService().getLeaderboardByName(leaderboardDTO.name);
|
||||
if (leaderboard != null) {
|
||||
group.addLeaderboard(leaderboard);
|
||||
}
|
||||
}
|
||||
getService().updateStoredLeaderboardGroup(group);
|
||||
public void updateLeaderboardGroup(String oldName, String newName, String description, List<String> leaderboardNames) {
|
||||
getService().updateLeaderboardGroup(oldName, newName, description, leaderboardNames);
|
||||
}
|
||||
|
||||
}
|
||||
+2
-2
@@ -18,7 +18,7 @@ import com.sap.sailing.operationaltransformation.PeerImpl;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sailing.server.impl.RacingEventServiceImpl;
|
||||
import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard;
|
||||
import com.sap.sailing.server.operationaltransformation.AddLeaderboard;
|
||||
import com.sap.sailing.server.operationaltransformation.CreateLeaderboard;
|
||||
import com.sap.sailing.server.operationaltransformation.MoveLeaderboardColumnUp;
|
||||
import com.sap.sailing.server.operationaltransformation.OperationalTransformer;
|
||||
import com.sap.sailing.server.operationaltransformation.RacingEventServiceOperation;
|
||||
@@ -48,7 +48,7 @@ public class OperationalTransformationTest {
|
||||
|
||||
@Test
|
||||
public void testAddLeaderboard() {
|
||||
RacingEventServiceOperation addLeaderboardOp = new AddLeaderboard(LEADERBOARDNAME, new int[] { 5 });
|
||||
RacingEventServiceOperation addLeaderboardOp = new CreateLeaderboard(LEADERBOARDNAME, new int[] { 5 });
|
||||
server.apply(addLeaderboardOp);
|
||||
server.waitForNotRunning();
|
||||
replica.waitForNotRunning();
|
||||
|
||||
@@ -326,4 +326,6 @@ public interface RacingEventService extends TrackedEventRegistry {
|
||||
*/
|
||||
void addRace(EventIdentifier addToEvent, RaceDefinition raceDefinition);
|
||||
|
||||
void updateLeaderboardGroup(String oldName, String newName, String description, List<String> leaderboardNames);
|
||||
|
||||
}
|
||||
|
||||
+19
@@ -859,6 +859,25 @@ public class RacingEventServiceImpl implements RacingEventService, EventFetcher,
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLeaderboardGroup(String oldName, String newName, String description, List<String> leaderboardNames) {
|
||||
if (!oldName.equals(newName)) {
|
||||
renameLeaderboardGroup(oldName, newName);
|
||||
}
|
||||
LeaderboardGroup group = getLeaderboardGroupByName(newName);
|
||||
if (!description.equals(group.getDescription())) {
|
||||
group.setDescriptiom(description);
|
||||
}
|
||||
group.clearLeaderboards();
|
||||
for (String leaderboardName : leaderboardNames) {
|
||||
Leaderboard leaderboard = getLeaderboardByName(leaderboardName);
|
||||
if (leaderboard != null) {
|
||||
group.addLeaderboard(leaderboard);
|
||||
}
|
||||
}
|
||||
mongoObjectFactory.storeLeaderboardGroup(group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStoredLeaderboardGroup(LeaderboardGroup leaderboardGroup) {
|
||||
mongoObjectFactory.storeLeaderboardGroup(leaderboardGroup);
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.sap.sailing.server.operationaltransformation;
|
||||
|
||||
public abstract class AbstractLeaderboardGroupOperation extends AbstractRacingEventServiceOperation {
|
||||
private static final long serialVersionUID = 4341066708061847418L;
|
||||
private final String leaderboardGroupName;
|
||||
|
||||
public AbstractLeaderboardGroupOperation(String leaderboardGroupName) {
|
||||
super();
|
||||
this.leaderboardGroupName = leaderboardGroupName;
|
||||
}
|
||||
|
||||
protected String getLeaderboardGroupName() {
|
||||
return leaderboardGroupName;
|
||||
}
|
||||
|
||||
protected boolean affectsSameLeaderboardGroup(AbstractLeaderboardGroupOperation other) {
|
||||
return getLeaderboardGroupName().equals(other.getLeaderboardGroupName());
|
||||
}
|
||||
|
||||
}
|
||||
+4
-4
@@ -25,12 +25,12 @@ public abstract class AbstractRacingEventServiceOperation implements RacingEvent
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingEventServiceOperation transformAddLeaderboardClientOp(AddLeaderboard addLeaderboard) {
|
||||
public RacingEventServiceOperation transformAddLeaderboardClientOp(CreateLeaderboard addLeaderboard) {
|
||||
return addLeaderboard;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingEventServiceOperation transformAddLeaderboardServerOp(AddLeaderboard addLeaderboard) {
|
||||
public RacingEventServiceOperation transformAddLeaderboardServerOp(CreateLeaderboard addLeaderboard) {
|
||||
return addLeaderboard;
|
||||
}
|
||||
|
||||
@@ -47,12 +47,12 @@ public abstract class AbstractRacingEventServiceOperation implements RacingEvent
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingEventServiceOperation transformRemoveColumnFromLeaderboardServerOp(RemoveColumnFromLeaderboard removeColumnFromLeaderboardServerOp) {
|
||||
public RacingEventServiceOperation transformRemoveColumnFromLeaderboardServerOp(RemoveLeaderboardColumn removeColumnFromLeaderboardServerOp) {
|
||||
return removeColumnFromLeaderboardServerOp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingEventServiceOperation transformRemoveColumnFromLeaderboardClientOp(RemoveColumnFromLeaderboard removeColumnFromLeaderboardClientOp) {
|
||||
public RacingEventServiceOperation transformRemoveColumnFromLeaderboardClientOp(RemoveLeaderboardColumn removeColumnFromLeaderboardClientOp) {
|
||||
return removeColumnFromLeaderboardClientOp;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package com.sap.sailing.server.operationaltransformation;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
|
||||
/**
|
||||
* Doesn't transform for the {@link RemoveColumnFromLeaderboard} because only existing leaderboards can be removed,
|
||||
* Doesn't transform for the {@link RemoveLeaderboardColumn} because only existing leaderboards can be removed,
|
||||
* and adding is only possible for non-existing names.
|
||||
*
|
||||
* @author Axel Uhl (d043530)
|
||||
|
||||
+2
-2
@@ -2,11 +2,11 @@ package com.sap.sailing.server.operationaltransformation;
|
||||
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
|
||||
public class AddLeaderboard extends AbstractLeaderboardOperation {
|
||||
public class CreateLeaderboard extends AbstractLeaderboardOperation {
|
||||
private static final long serialVersionUID = 891352705068098580L;
|
||||
private final int[] discardThresholds;
|
||||
|
||||
public AddLeaderboard(String leaderboardName, int[] discardThresholds) {
|
||||
public CreateLeaderboard(String leaderboardName, int[] discardThresholds) {
|
||||
super(leaderboardName);
|
||||
this.discardThresholds = discardThresholds;
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package com.sap.sailing.server.operationaltransformation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
|
||||
public class CreateLeaderboardGroup extends AbstractLeaderboardGroupOperation {
|
||||
private static final long serialVersionUID = -5028997286564650805L;
|
||||
private final String description;
|
||||
private final List<String> leaderboardNames;
|
||||
|
||||
public CreateLeaderboardGroup(String leaderboardGroupName, String description, List<String> leaderboardNames) {
|
||||
super(leaderboardGroupName);
|
||||
this.description = description;
|
||||
this.leaderboardNames = leaderboardNames;
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingEventService applyTo(RacingEventService toState) {
|
||||
toState.addLeaderboardGroup(getLeaderboardGroupName(), description, leaderboardNames);
|
||||
return toState;
|
||||
}
|
||||
|
||||
}
|
||||
+4
-4
@@ -31,17 +31,17 @@ public interface RacingEventServiceOperation extends Operation<RacingEventServic
|
||||
* operation deals with the leaderboard column being removed by <code>removeColumnFromLeaderboardClientOp</code>,
|
||||
* the result will be <code>null</code>, meaning that this operation cannot be applied after the column has been removed.
|
||||
*/
|
||||
RacingEventServiceOperation transformRemoveColumnFromLeaderboardClientOp(RemoveColumnFromLeaderboard removeColumnFromLeaderboardClientOp);
|
||||
RacingEventServiceOperation transformRemoveColumnFromLeaderboardClientOp(RemoveLeaderboardColumn removeColumnFromLeaderboardClientOp);
|
||||
|
||||
RacingEventServiceOperation transformRemoveColumnFromLeaderboardServerOp(RemoveColumnFromLeaderboard removeColumnFromLeaderboardServerOp);
|
||||
RacingEventServiceOperation transformRemoveColumnFromLeaderboardServerOp(RemoveLeaderboardColumn removeColumnFromLeaderboardServerOp);
|
||||
|
||||
RacingEventServiceOperation transformRenameLeaderboardColumnClientOp(RenameLeaderboardColumn renameLeaderboardColumnClientOp);
|
||||
|
||||
RacingEventServiceOperation transformRenameLeaderboardColumnServerOp(RenameLeaderboardColumn renameLeaderboardColumnServerOp);
|
||||
|
||||
RacingEventServiceOperation transformAddLeaderboardClientOp(AddLeaderboard addLeaderboard);
|
||||
RacingEventServiceOperation transformAddLeaderboardClientOp(CreateLeaderboard addLeaderboard);
|
||||
|
||||
RacingEventServiceOperation transformAddLeaderboardServerOp(AddLeaderboard addLeaderboard);
|
||||
RacingEventServiceOperation transformAddLeaderboardServerOp(CreateLeaderboard addLeaderboard);
|
||||
|
||||
RacingEventServiceOperation transformRemoveLeaderboardClientOp(RemoveLeaderboard removeLeaderboard);
|
||||
|
||||
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package com.sap.sailing.server.operationaltransformation;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.common.EventAndRaceIdentifier;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
|
||||
public class RemoveAndUntrackRace extends AbstractRaceOperation {
|
||||
private static final long serialVersionUID = 4260421466093529004L;
|
||||
|
||||
public RemoveAndUntrackRace(EventAndRaceIdentifier raceIdentifier) {
|
||||
super(raceIdentifier);
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingEventService applyTo(RacingEventService toState) {
|
||||
Event event = toState.getEvent(getRaceIdentifier());
|
||||
if (event!= null) {
|
||||
RaceDefinition race = event.getRaceByName(getRaceIdentifier().getRaceName());
|
||||
if (race != null) {
|
||||
try {
|
||||
toState.removeRace(event, race);
|
||||
} catch (IOException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return toState;
|
||||
}
|
||||
|
||||
}
|
||||
+2
-2
@@ -47,7 +47,7 @@ public class RemoveLeaderboard extends AbstractLeaderboardOperation {
|
||||
|
||||
@Override
|
||||
public RacingEventServiceOperation transformRemoveColumnFromLeaderboardServerOp(
|
||||
RemoveColumnFromLeaderboard removeColumnFromLeaderboardServerOp) {
|
||||
RemoveLeaderboardColumn removeColumnFromLeaderboardServerOp) {
|
||||
if (affectsSameLeaderboard(removeColumnFromLeaderboardServerOp)) {
|
||||
return AbstractRacingEventServiceOperation.getNoOp();
|
||||
} else {
|
||||
@@ -57,7 +57,7 @@ public class RemoveLeaderboard extends AbstractLeaderboardOperation {
|
||||
|
||||
@Override
|
||||
public RacingEventServiceOperation transformRemoveColumnFromLeaderboardClientOp(
|
||||
RemoveColumnFromLeaderboard removeColumnFromLeaderboardClientOp) {
|
||||
RemoveLeaderboardColumn removeColumnFromLeaderboardClientOp) {
|
||||
if (affectsSameLeaderboard(removeColumnFromLeaderboardClientOp)) {
|
||||
return AbstractRacingEventServiceOperation.getNoOp();
|
||||
} else {
|
||||
|
||||
+4
-4
@@ -2,10 +2,10 @@ package com.sap.sailing.server.operationaltransformation;
|
||||
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
|
||||
public class RemoveColumnFromLeaderboard extends AbstractLeaderboardColumnOperation {
|
||||
public class RemoveLeaderboardColumn extends AbstractLeaderboardColumnOperation {
|
||||
private static final long serialVersionUID = 5425526859417359535L;
|
||||
|
||||
public RemoveColumnFromLeaderboard(String columnName, String leaderboardName) {
|
||||
public RemoveLeaderboardColumn(String columnName, String leaderboardName) {
|
||||
super(leaderboardName, columnName);
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ public class RemoveColumnFromLeaderboard extends AbstractLeaderboardColumnOperat
|
||||
|
||||
@Override
|
||||
public RacingEventServiceOperation transformRemoveColumnFromLeaderboardServerOp(
|
||||
RemoveColumnFromLeaderboard removeColumnFromLeaderboardServerOp) {
|
||||
RemoveLeaderboardColumn removeColumnFromLeaderboardServerOp) {
|
||||
if (affectsSameColumn(removeColumnFromLeaderboardServerOp)) {
|
||||
return AbstractRacingEventServiceOperation.getNoOp();
|
||||
} else {
|
||||
@@ -57,7 +57,7 @@ public class RemoveColumnFromLeaderboard extends AbstractLeaderboardColumnOperat
|
||||
|
||||
@Override
|
||||
public RacingEventServiceOperation transformRemoveColumnFromLeaderboardClientOp(
|
||||
RemoveColumnFromLeaderboard removeColumnFromLeaderboardClientOp) {
|
||||
RemoveLeaderboardColumn removeColumnFromLeaderboardClientOp) {
|
||||
if (affectsSameColumn(removeColumnFromLeaderboardClientOp)) {
|
||||
return AbstractRacingEventServiceOperation.getNoOp();
|
||||
} else {
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package com.sap.sailing.server.operationaltransformation;
|
||||
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
|
||||
public class RemoveLeaderboardGroup extends AbstractLeaderboardGroupOperation {
|
||||
private static final long serialVersionUID = 3177217793859319236L;
|
||||
|
||||
public RemoveLeaderboardGroup(String leaderboardGroupName) {
|
||||
super(leaderboardGroupName);
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingEventService applyTo(RacingEventService toState) {
|
||||
toState.removeLeaderboardGroup(getLeaderboardGroupName());
|
||||
return toState;
|
||||
}
|
||||
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package com.sap.sailing.server.operationaltransformation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
|
||||
public class UpdateLeaderboardGroup extends AbstractLeaderboardGroupOperation {
|
||||
private static final long serialVersionUID = -1822477339916802467L;
|
||||
private final String newName;
|
||||
private final String newDescription;
|
||||
private final List<String> leaderboardNames;
|
||||
|
||||
public UpdateLeaderboardGroup(String leaderboardGroupName, String newName, String newDescription,
|
||||
List<String> leaderboardNames) {
|
||||
super(leaderboardGroupName);
|
||||
this.newName = newName;
|
||||
this.newDescription = newDescription;
|
||||
this.leaderboardNames = leaderboardNames;
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingEventService applyTo(RacingEventService toState) {
|
||||
toState.updateLeaderboardGroup(getLeaderboardGroupName(), newName, newDescription, leaderboardNames);
|
||||
return toState;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user