mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 09:26:44 +00:00
Added check in RaceColumnsInRegattaSeriesDialog to ensure unique raceColumn names in a regatta
This commit is contained in:
+37
-18
@@ -3,6 +3,7 @@ package com.sap.sailing.gwt.ui.adminconsole;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.event.dom.client.ChangeEvent;
|
||||
import com.google.gwt.event.dom.client.ChangeHandler;
|
||||
@@ -39,51 +40,67 @@ public class RaceColumnInRegattaSeriesDialog extends DataEntryDialog<Pair<Series
|
||||
|
||||
private static class RaceDialogValidator implements Validator<Pair<SeriesDTO, List<RaceColumnDTO>>> {
|
||||
private StringMessages stringConstants;
|
||||
|
||||
private RegattaDTO regatta;
|
||||
|
||||
public RaceDialogValidator(RegattaDTO regatta, StringMessages stringConstants) {
|
||||
this.stringConstants = stringConstants;
|
||||
this.regatta = regatta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getErrorMessage(Pair<SeriesDTO, List<RaceColumnDTO>> valueToValidate) {
|
||||
Set<String> raceColumnNamesOfOtherSeries = new HashSet<String>();
|
||||
SeriesDTO seriesToValidate = valueToValidate.getA();
|
||||
List<RaceColumnDTO> raceColumnsToValidate = valueToValidate.getB();
|
||||
|
||||
String errorMessage = null;
|
||||
if(seriesToValidate == null) {
|
||||
errorMessage = stringConstants.pleaseSelectASeries();
|
||||
} else {
|
||||
for (SeriesDTO seriesDTO: regatta.series) {
|
||||
if(!seriesDTO.name.equals(seriesToValidate.name)) {
|
||||
for(RaceColumnDTO raceColumn: seriesDTO.getRaceColumns()) {
|
||||
raceColumnNamesOfOtherSeries.add(raceColumn.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SeriesDTO series = valueToValidate.getA();
|
||||
if(series == null) {
|
||||
errorMessage = "You must select a series";
|
||||
}
|
||||
|
||||
if(errorMessage == null) {
|
||||
List<RaceColumnDTO> raceColumnsToValidate = valueToValidate.getB();
|
||||
int index = 0;
|
||||
boolean raceColumnNameNotEmpty = true;
|
||||
RaceColumnDTO wrongRaceColumn = null;
|
||||
|
||||
for (RaceColumnDTO raceColumn : raceColumnsToValidate) {
|
||||
raceColumnNameNotEmpty = raceColumn.name != null && raceColumn.name.length() > 0;
|
||||
if (!raceColumnNameNotEmpty) {
|
||||
wrongRaceColumn = raceColumn;
|
||||
break;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
int index2 = 0;
|
||||
boolean raceColumnUnique = true;
|
||||
boolean raceColumnUniqueInSeries = true;
|
||||
boolean raceColumnUniqueInRegatta = true;
|
||||
|
||||
HashSet<String> setToFindDuplicates = new HashSet<String>();
|
||||
for (RaceColumnDTO raceColumn : raceColumnsToValidate) {
|
||||
if (!setToFindDuplicates.add(raceColumn.name)) {
|
||||
raceColumnUnique = false;
|
||||
raceColumnUniqueInSeries = false;
|
||||
wrongRaceColumn = raceColumn;
|
||||
break;
|
||||
}
|
||||
index2++;
|
||||
} else if(raceColumnNamesOfOtherSeries.contains(raceColumn.name)) {
|
||||
raceColumnUniqueInRegatta = false;
|
||||
wrongRaceColumn = raceColumn;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!raceColumnNameNotEmpty) {
|
||||
errorMessage = stringConstants.race() + " " + (index + 1) + ": "
|
||||
errorMessage = stringConstants.race() + " " + wrongRaceColumn.name + ": "
|
||||
+ stringConstants.pleaseEnterAName();
|
||||
} else if (!raceColumnUnique) {
|
||||
errorMessage = stringConstants.race() + " " + (index2 + 1) + ": "
|
||||
} else if (!raceColumnUniqueInSeries) {
|
||||
errorMessage = stringConstants.race() + " " + wrongRaceColumn.name + ": "
|
||||
+ stringConstants.raceWithThisNameAlreadyExists();
|
||||
} else if (!raceColumnUniqueInRegatta) {
|
||||
errorMessage = stringConstants.race() + " " + wrongRaceColumn.name + ": "
|
||||
+ stringConstants.raceWithThisNameAlreadyExistsInRegatta();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,6 +149,7 @@ public class RaceColumnInRegattaSeriesDialog extends DataEntryDialog<Pair<Series
|
||||
raceNameEntryFields.remove(index);
|
||||
raceNameDeleteButtons.remove(index);
|
||||
updateRaceColumnsGrid(additionalWidgetPanel);
|
||||
validate();
|
||||
}
|
||||
});
|
||||
return raceNameDeleteBtn;
|
||||
@@ -240,6 +258,7 @@ public class RaceColumnInRegattaSeriesDialog extends DataEntryDialog<Pair<Series
|
||||
createRaceNameDeleteButtonWidget();
|
||||
}
|
||||
updateRaceColumnsGrid(additionalWidgetPanel);
|
||||
validate();
|
||||
} else {
|
||||
Window.alert("Please select a series first.");
|
||||
}
|
||||
|
||||
+4
-3
@@ -48,6 +48,7 @@ import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.FleetDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.NamedDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceColumnDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceColumnInSeriesDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.SeriesDTO;
|
||||
|
||||
@@ -330,7 +331,7 @@ public class RegattaStructureManagementPanel extends SimplePanel implements Rega
|
||||
}
|
||||
}
|
||||
|
||||
sailingService.addColumnsToSeries(regattaIdentifier, series.name, raceColumnsToAdd, new AsyncCallback<Void>() {
|
||||
sailingService.addRaceColumnsToSeries(regattaIdentifier, series.name, raceColumnsToAdd, new AsyncCallback<List<RaceColumnInSeriesDTO>>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to add race columns "
|
||||
@@ -340,12 +341,12 @@ public class RegattaStructureManagementPanel extends SimplePanel implements Rega
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void v) {
|
||||
public void onSuccess(List<RaceColumnInSeriesDTO> raceColumns) {
|
||||
regattaRefresher.fillRegattas();
|
||||
}
|
||||
});
|
||||
|
||||
sailingService.removeColumnsFromSeries(regattaIdentifier, series.name, raceColumnsToRemove, new AsyncCallback<Void>() {
|
||||
sailingService.removeRaceColumnsFromSeries(regattaIdentifier, series.name, raceColumnsToRemove, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error trying to remove race columns "
|
||||
|
||||
+8
-7
@@ -31,6 +31,7 @@ import com.sap.sailing.gwt.ui.shared.ManeuverDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.MultiCompetitorRaceDataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.QuickRankDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceBuoysDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceColumnInSeriesDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO;
|
||||
@@ -141,19 +142,19 @@ public interface SailingService extends RemoteService {
|
||||
|
||||
void removeRegatta(RegattaIdentifier regattaIdentifier);
|
||||
|
||||
void addColumnsToSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames);
|
||||
List<RaceColumnInSeriesDTO> addRaceColumnsToSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames);
|
||||
|
||||
void addColumnToSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
|
||||
RaceColumnInSeriesDTO addRaceColumnToSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
|
||||
|
||||
void removeColumnsFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames);
|
||||
void removeRaceColumnsFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames);
|
||||
|
||||
void removeColumnFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
|
||||
void removeRaceColumnFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
|
||||
|
||||
void renameColumnInSeries(RegattaIdentifier regattaIdentifier, String seriesName, String oldColumnName, String newColumnName);
|
||||
void renameRaceColumnInSeries(RegattaIdentifier regattaIdentifier, String seriesName, String oldColumnName, String newColumnName);
|
||||
|
||||
void moveColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
|
||||
void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
|
||||
|
||||
void moveColumnInSeriesDown(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
|
||||
void moveRaceColumnInSeriesDown(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
|
||||
|
||||
boolean connectTrackedRaceToLeaderboardColumn(String leaderboardName, String raceColumnName,
|
||||
String fleetName, RegattaAndRaceIdentifier raceIdentifier);
|
||||
|
||||
+11
-11
@@ -24,6 +24,7 @@ import com.sap.sailing.gwt.ui.shared.ControlPointDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.CourseDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceBuoysDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceColumnInSeriesDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
|
||||
@@ -370,30 +371,29 @@ public interface SailingServiceAsync {
|
||||
|
||||
void removeRegatta(RegattaIdentifier regattaIdentifier, AsyncCallback<Void> callback);
|
||||
|
||||
void addColumnToSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName, AsyncCallback<Void> callback);
|
||||
void addRaceColumnToSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
|
||||
AsyncCallback<RaceColumnInSeriesDTO> callback);
|
||||
|
||||
void removeColumnFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
|
||||
void removeRaceColumnFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
|
||||
AsyncCallback<Void> callback);
|
||||
|
||||
void renameColumnInSeries(RegattaIdentifier regattaIdentifier, String seriesName, String oldColumnName,
|
||||
void renameRaceColumnInSeries(RegattaIdentifier regattaIdentifier, String seriesName, String oldColumnName,
|
||||
String newColumnName, AsyncCallback<Void> callback);
|
||||
|
||||
void moveColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
|
||||
void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
|
||||
AsyncCallback<Void> callback);
|
||||
|
||||
void moveColumnInSeriesDown(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
|
||||
void moveRaceColumnInSeriesDown(RegattaIdentifier regattaIdentifier, String seriesName, String columnName,
|
||||
AsyncCallback<Void> callback);
|
||||
|
||||
void createRegatta(
|
||||
String regattaName,
|
||||
String boatClassName,
|
||||
void createRegatta(String regattaName, String boatClassName,
|
||||
LinkedHashMap<String, Pair<List<Triple<String, Integer, Color>>, Boolean>> seriesNamesWithFleetNamesAndFleetOrderingAndMedal,
|
||||
boolean persistent, ScoringSchemeType scoringSchemeType, AsyncCallback<RegattaDTO> callback);
|
||||
|
||||
void addColumnsToSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames,
|
||||
AsyncCallback<Void> callback);
|
||||
void addRaceColumnsToSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames,
|
||||
AsyncCallback<List<RaceColumnInSeriesDTO>> callback);
|
||||
|
||||
void removeColumnsFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames,
|
||||
void removeRaceColumnsFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames,
|
||||
AsyncCallback<Void> callback);
|
||||
|
||||
void getScoreCorrectionProviderDTOs(AsyncCallback<Iterable<ScoreCorrectionProviderDTO>> callback);
|
||||
|
||||
+2
@@ -173,6 +173,7 @@ public interface StringMessages extends Messages {
|
||||
String delete();
|
||||
String showCharts();
|
||||
String raceWithThisNameAlreadyExists();
|
||||
String raceWithThisNameAlreadyExistsInRegatta();
|
||||
String headUp();
|
||||
String bearAway();
|
||||
String tack();
|
||||
@@ -403,4 +404,5 @@ public interface StringMessages extends Messages {
|
||||
String isPublic();
|
||||
String unsuppress();
|
||||
String suppressedCompetitors();
|
||||
String pleaseSelectASeries();
|
||||
}
|
||||
|
||||
+4
-2
@@ -168,7 +168,8 @@ no3LetterCodes=Unable to find the IOC 3-letter-codes.
|
||||
add=Add
|
||||
delete=Delete
|
||||
showCharts=Show charts
|
||||
raceWithThisNameAlreadyExists=A race with that name already exists
|
||||
raceWithThisNameAlreadyExists=A race with that name already exists.
|
||||
raceWithThisNameAlreadyExistsInRegatta=A race with that name already exists in this regatta.
|
||||
headUp=Head up
|
||||
bearAway=Bear away
|
||||
tack=Tack
|
||||
@@ -403,5 +404,6 @@ suppress=Suppress
|
||||
isPublic=Is public
|
||||
suppress=Suppress
|
||||
unsuppress=Unsuppress
|
||||
suppressedCompetitors=Suppressed Competitors
|
||||
suppressedCompetitors=Suppressed Competitors
|
||||
pleaseSelectASeries=Please select a series.
|
||||
|
||||
|
||||
+3
-2
@@ -170,7 +170,8 @@ no3LetterCodes=IOC 3-Buchstaben-Codes können nicht gefunden werden.
|
||||
add=Hinzufügen
|
||||
delete=Löschen
|
||||
showCharts=Grafische Ansicht
|
||||
raceWithThisNameAlreadyExists=Ein Rennen mit diesem Namen existiert schon
|
||||
raceWithThisNameAlreadyExists=Ein Rennen mit diesem Namen existiert schon.
|
||||
raceWithThisNameAlreadyExistsInRegatta=Ein Rennen mit diesem Namen existiert schon in der Regatta.
|
||||
headUp=anluven
|
||||
bearAway=abfallen
|
||||
tack=Wende
|
||||
@@ -405,4 +406,4 @@ isPublic=Öffentlich zugänglich
|
||||
suppress=Entfernen
|
||||
unsuppress=Wieder hinzufügen
|
||||
suppressedCompetitors=Unterdrückte Wettkampfteilnehmer
|
||||
|
||||
pleaseSelectASeries=Bitte wählen Sie eine Serie aus.
|
||||
|
||||
+28
-9
@@ -152,6 +152,7 @@ import com.sap.sailing.gwt.ui.shared.PositionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.QuickRankDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceBuoysDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceColumnDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceColumnInSeriesDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO;
|
||||
@@ -2623,43 +2624,61 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
getService().apply(new RemoveRegatta(regattaIdentifier));
|
||||
}
|
||||
|
||||
private RaceColumnInSeriesDTO convertToRaceColumnInSeriesDTO(RaceColumnInSeries raceColumnInSeries) {
|
||||
RaceColumnInSeriesDTO raceColumnInSeriesDTO = new RaceColumnInSeriesDTO(raceColumnInSeries.getSeries().getName(),
|
||||
raceColumnInSeries.getRegatta().getName());
|
||||
raceColumnInSeriesDTO.name = raceColumnInSeries.getName();
|
||||
raceColumnInSeriesDTO.setMedalRace(raceColumnInSeries.isMedalRace());
|
||||
return raceColumnInSeriesDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addColumnsToSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames) {
|
||||
public List<RaceColumnInSeriesDTO> addRaceColumnsToSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames) {
|
||||
List<RaceColumnInSeriesDTO> result = new ArrayList<RaceColumnInSeriesDTO>();
|
||||
for(String columnName: columnNames) {
|
||||
getService().apply(new AddColumnToSeries(regattaIdentifier, seriesName, columnName));
|
||||
RaceColumnInSeries raceColumnInSeries = getService().apply(new AddColumnToSeries(regattaIdentifier, seriesName, columnName));
|
||||
if(raceColumnInSeries != null) {
|
||||
result.add(convertToRaceColumnInSeriesDTO(raceColumnInSeries));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addColumnToSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName) {
|
||||
getService().apply(new AddColumnToSeries(regattaIdentifier, seriesName, columnName));
|
||||
public RaceColumnInSeriesDTO addRaceColumnToSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName) {
|
||||
RaceColumnInSeriesDTO result = null;
|
||||
RaceColumnInSeries raceColumnInSeries = getService().apply(new AddColumnToSeries(regattaIdentifier, seriesName, columnName));
|
||||
if(raceColumnInSeries != null) {
|
||||
result = convertToRaceColumnInSeriesDTO(raceColumnInSeries);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeColumnsFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames) {
|
||||
public void removeRaceColumnsFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames) {
|
||||
for(String columnName: columnNames) {
|
||||
getService().apply(new RemoveColumnFromSeries(regattaIdentifier, seriesName, columnName));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeColumnFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName) {
|
||||
public void removeRaceColumnFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName) {
|
||||
getService().apply(new RemoveColumnFromSeries(regattaIdentifier, seriesName, columnName));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renameColumnInSeries(RegattaIdentifier regattaIdentifier, String seriesName, String oldColumnName,
|
||||
public void renameRaceColumnInSeries(RegattaIdentifier regattaIdentifier, String seriesName, String oldColumnName,
|
||||
String newColumnName) {
|
||||
getService().apply(new RenameColumnInSeries(regattaIdentifier, seriesName, oldColumnName, newColumnName));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moveColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName) {
|
||||
public void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName) {
|
||||
getService().apply(new MoveColumnInSeriesUp(regattaIdentifier, seriesName, columnName));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moveColumnInSeriesDown(RegattaIdentifier regattaIdentifier, String seriesName, String columnName) {
|
||||
public void moveRaceColumnInSeriesDown(RegattaIdentifier regattaIdentifier, String seriesName, String columnName) {
|
||||
getService().apply(new MoveColumnInSeriesDown(regattaIdentifier, seriesName, columnName));
|
||||
}
|
||||
|
||||
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package com.sap.sailing.gwt.ui.shared;
|
||||
|
||||
public class RaceColumnInSeriesDTO extends RaceColumnDTO {
|
||||
private String seriesName;
|
||||
private String regattaName;
|
||||
|
||||
// for GWT serialization
|
||||
RaceColumnInSeriesDTO() {}
|
||||
|
||||
public RaceColumnInSeriesDTO(String seriesName, String regattaName) {
|
||||
super();
|
||||
this.seriesName = seriesName;
|
||||
this.regattaName = regattaName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = super.hashCode();
|
||||
result = prime * result + ((regattaName == null) ? 0 : regattaName.hashCode());
|
||||
result = prime * result + ((seriesName == null) ? 0 : seriesName.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (!super.equals(obj))
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
RaceColumnInSeriesDTO other = (RaceColumnInSeriesDTO) obj;
|
||||
if (regattaName == null) {
|
||||
if (other.regattaName != null)
|
||||
return false;
|
||||
} else if (!regattaName.equals(other.regattaName))
|
||||
return false;
|
||||
if (seriesName == null) {
|
||||
if (other.seriesName != null)
|
||||
return false;
|
||||
} else if (!seriesName.equals(other.seriesName))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public String getSeriesName() {
|
||||
return seriesName;
|
||||
}
|
||||
|
||||
public String getRegattaName() {
|
||||
return regattaName;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user