Merge remote-tracking branch 'origin/master'

Conflicts:
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java
This commit is contained in:
fmittag
2012-10-01 18:12:01 +02:00
11 changed files with 36 additions and 96 deletions
@@ -1,7 +1,7 @@
package com.sap.sailing.domain.base;
import com.sap.sailing.domain.common.Named;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.Renamable;
import com.sap.sailing.domain.common.impl.Util;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.domain.leaderboard.Leaderboard;
@@ -25,7 +25,7 @@ import com.sap.sailing.util.impl.RaceColumnListeners;
* @author Axel Uhl (D043530)
*
*/
public interface RaceColumn extends Renamable {
public interface RaceColumn extends Named {
/**
* @return the fleets for each of which this column has a single race and therefore optionally a {@link TrackedRace}, in
* ascending order; best fleets first
@@ -14,10 +14,8 @@ public abstract class AbstractRaceColumn extends SimpleAbstractRaceColumn implem
private static final long serialVersionUID = -7801617988982540470L;
private final Map<Fleet, TrackedRace> trackedRaces;
private String name;
private final Map<Fleet, RaceIdentifier> raceIdentifiers;
public AbstractRaceColumn(String name) {
this.name = name;
public AbstractRaceColumn() {
this.trackedRaces = new HashMap<Fleet, TrackedRace>();
this.raceIdentifiers = new HashMap<Fleet, RaceIdentifier>();
}
@@ -49,16 +47,6 @@ public abstract class AbstractRaceColumn extends SimpleAbstractRaceColumn implem
}
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String newName) {
this.name = newName;
}
@Override
public RaceIdentifier getRaceIdentifier(Fleet fleet) {
return raceIdentifiers.get(fleet);
@@ -18,6 +18,7 @@ import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
public class RaceColumnInSeriesImpl extends AbstractRaceColumn implements RaceColumnInSeries {
private static final long serialVersionUID = -2199678838624406645L;
private final Series series;
private final String name;
/**
* Making this transient will leave it <code>null</code> on a replica. This, however, is OK because
@@ -34,11 +35,16 @@ public class RaceColumnInSeriesImpl extends AbstractRaceColumn implements RaceCo
* carried out.
*/
public RaceColumnInSeriesImpl(String name, Series series, TrackedRegattaRegistry trackedRegattaRegistry) {
super(name);
this.name = name;
this.series = series;
this.trackedRegattaRegistry = trackedRegattaRegistry;
}
@Override
public String getName() {
return name;
}
@Override
public Regatta getRegatta() {
return getSeries().getRegatta();
@@ -3,5 +3,6 @@ package com.sap.sailing.domain.leaderboard;
import com.sap.sailing.domain.base.RaceColumn;
public interface FlexibleRaceColumn extends RaceColumn {
void setName(String newName);
void setIsMedalRace(boolean isMedalRace);
}
@@ -10,7 +10,8 @@ import com.sap.sailing.domain.leaderboard.FlexibleRaceColumn;
public class RaceColumnImpl extends AbstractRaceColumn implements FlexibleRaceColumn {
private static final long serialVersionUID = -7801617988982540470L;
private String name;
/**
* All fleets for which this column can contain a race. This is the maximum set of keys possible for
* {@link #trackedRaces} and {@link #raceIdentifiers}.
@@ -19,7 +20,8 @@ public class RaceColumnImpl extends AbstractRaceColumn implements FlexibleRaceCo
private boolean medalRace;
public RaceColumnImpl(String name, boolean medalRace, Iterable<Fleet> fleets) {
super(name);
super();
this.name = name;
this.medalRace = medalRace;
List<Fleet> myFleets = new ArrayList<Fleet>();
for (Fleet fleet : fleets) {
@@ -29,6 +31,16 @@ public class RaceColumnImpl extends AbstractRaceColumn implements FlexibleRaceCo
this.fleets = myFleets;
}
@Override
public void setName(String newName) {
this.name = newName;
}
@Override
public String getName() {
return name;
}
@Override
public boolean isMedalRace() {
return medalRace;
@@ -95,10 +95,6 @@ public class MetaLeaderboardColumn extends SimpleAbstractRaceColumn implements R
return false;
}
@Override
public void setName(String newName) {
}
@Override
public void releaseTrackedRace(Fleet fleet) {
}
@@ -150,9 +150,7 @@ public interface SailingService extends RemoteService {
void removeRaceColumnFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
void renameRaceColumnInSeries(RegattaIdentifier regattaIdentifier, String seriesName, String oldColumnName, String newColumnName);
void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
void moveRaceColumnInSeriesDown(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
@@ -377,10 +377,7 @@ public interface SailingServiceAsync {
void removeRaceColumnFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
AsyncCallback<Void> callback);
void renameRaceColumnInSeries(RegattaIdentifier regattaIdentifier, String seriesName, String oldColumnName,
String newColumnName, AsyncCallback<Void> callback);
void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
AsyncCallback<Void> callback);
void moveRaceColumnInSeriesDown(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
@@ -198,7 +198,6 @@ import com.sap.sailing.server.operationaltransformation.RemoveLeaderboard;
import com.sap.sailing.server.operationaltransformation.RemoveLeaderboardColumn;
import com.sap.sailing.server.operationaltransformation.RemoveLeaderboardGroup;
import com.sap.sailing.server.operationaltransformation.RemoveRegatta;
import com.sap.sailing.server.operationaltransformation.RenameColumnInSeries;
import com.sap.sailing.server.operationaltransformation.RenameEvent;
import com.sap.sailing.server.operationaltransformation.RenameLeaderboard;
import com.sap.sailing.server.operationaltransformation.RenameLeaderboardColumn;
@@ -2667,13 +2666,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
}
@Override
public void renameRaceColumnInSeries(RegattaIdentifier regattaIdentifier, String seriesName, String oldColumnName,
String newColumnName) {
getService().apply(new RenameColumnInSeries(regattaIdentifier, seriesName, oldColumnName, newColumnName));
}
@Override
public void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName) {
public void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName) {
getService().apply(new MoveColumnInSeriesUp(regattaIdentifier, seriesName, columnName));
}
@@ -54,6 +54,7 @@ import com.sap.sailing.domain.common.impl.Util;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.domain.common.impl.Util.Triple;
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
import com.sap.sailing.domain.leaderboard.FlexibleRaceColumn;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
import com.sap.sailing.domain.leaderboard.LeaderboardRegistry;
@@ -377,8 +378,13 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen
public void renameLeaderboardColumn(String leaderboardName, String oldColumnName, String newColumnName) {
Leaderboard leaderboard = getLeaderboardByName(leaderboardName);
if (leaderboard != null) {
leaderboard.getRaceColumnByName(oldColumnName).setName(newColumnName);
updateStoredLeaderboard((FlexibleLeaderboard) leaderboard);
final RaceColumn raceColumn = leaderboard.getRaceColumnByName(oldColumnName);
if (raceColumn instanceof FlexibleRaceColumn) {
((FlexibleRaceColumn) raceColumn).setName(newColumnName);
updateStoredLeaderboard((FlexibleLeaderboard) leaderboard);
} else {
throw new IllegalArgumentException("Race column "+oldColumnName+" cannot be renamed");
}
} else {
throw new IllegalArgumentException("Leaderboard named "+leaderboardName+" not found");
}
@@ -1,57 +0,0 @@
package com.sap.sailing.server.operationaltransformation;
import java.util.logging.Logger;
import com.sap.sailing.domain.base.RaceColumnInSeries;
import com.sap.sailing.domain.base.Series;
import com.sap.sailing.domain.common.RegattaIdentifier;
import com.sap.sailing.server.RacingEventService;
import com.sap.sailing.server.RacingEventServiceOperation;
public class RenameColumnInSeries extends AbstractColumnInSeriesOperation<Void> {
private static final long serialVersionUID = -6772077267645894432L;
private final static Logger logger = Logger.getLogger(RenameColumnInSeries.class.getName());
private final String newColumnName;
public RenameColumnInSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName, String newColumnName) {
super(regattaIdentifier, seriesName, columnName);
this.newColumnName = newColumnName;
}
@Override
public Void internalApplyTo(RacingEventService toState) throws Exception {
Series series = getSeries(toState);
if (series != null) {
RaceColumnInSeries raceColumn = series.getRaceColumnByName(getColumnName());
if (raceColumn != null) {
RaceColumnInSeries existingRaceColumnWithNewName = series.getRaceColumnByName(newColumnName);
if (existingRaceColumnWithNewName != null) {
logger.info("Not renaming column "+getColumnName()+" in series "+series.getName()+" in regatta "+series.getRegatta().getName()+
" to "+newColumnName+" because a column of that name already exists");
} else {
raceColumn.setName(newColumnName);
if (series.getRegatta().isPersistent()) {
toState.updateStoredRegatta(series.getRegatta());
}
}
} else {
logger.warning("Didn't find race column " + getColumnName() + " in series " + series.getName()
+ " in regatta " + series.getRegatta().getName());
}
}
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;
}
}