mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-09 05:40:57 +00:00
renamed a few classes around official result importing; added ScoreCorrections interfaces and b+m-based impls
This commit is contained in:
1 parent
72faf2e17d
commit
dd0e4b7a69
14 files changed
+249
-59
No files matched your search
Executable
+51
@@ -0,0 +1,51 @@
|
||||
package com.sap.sailing.domain.common;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public interface RegattaScoreCorrections {
|
||||
ScoreCorrectionProvider getProvider();
|
||||
|
||||
String getRegattaName();
|
||||
|
||||
/**
|
||||
* Lists the races in the order they are listed in the regatta, from first to last
|
||||
*/
|
||||
Iterable<ScoreCorrectionsForRace> getScoreCorrectionsForRaces();
|
||||
|
||||
public interface ScoreCorrectionsForRace {
|
||||
String getRaceNameOrNumber();
|
||||
|
||||
Set<String> getSailIDs();
|
||||
|
||||
ScoreCorrectionForCompetitorInRace getScoreCorrectionForCompetitor(String sailID);
|
||||
}
|
||||
|
||||
public interface ScoreCorrectionForCompetitorInRace {
|
||||
/**
|
||||
* Must not return <code>null</code>
|
||||
*/
|
||||
String getSailID();
|
||||
|
||||
/**
|
||||
* @return an optional competitor name; may be <code>null</code> if not known
|
||||
*/
|
||||
String getCompetitorName();
|
||||
|
||||
/**
|
||||
* The points the competitor scored in the race
|
||||
*/
|
||||
Double getPoints();
|
||||
|
||||
/**
|
||||
* {@link MaxPointsReason#NONE} if no reason for disqualification or score correction is given, otherwise the reason
|
||||
* for disqualification / score correction
|
||||
*/
|
||||
MaxPointsReason getMaxPointsReason();
|
||||
|
||||
/**
|
||||
* @return <code>null</code> if it's not known whether the race was discarded or not; otherwise an authoritative
|
||||
* statement about discarding
|
||||
*/
|
||||
Boolean isDiscarded();
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -27,5 +27,5 @@ public interface ScoreCorrectionProvider extends Named {
|
||||
public Map<String, Set<Pair<String, TimePoint>>> getHasResultsForBoatClassFromDateByEventName() throws IOException,
|
||||
SAXException, ParserConfigurationException;
|
||||
|
||||
public ScoreCorrections getScoreCorrections(String eventName, String boatClassName, TimePoint millisecondsTimePoint);
|
||||
public RegattaScoreCorrections getScoreCorrections(String eventName, String boatClassName, TimePoint millisecondsTimePoint) throws IOException, SAXException, ParserConfigurationException;
|
||||
}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.domain.common;
|
||||
|
||||
public interface ScoreCorrections {
|
||||
|
||||
}
|
||||
+3
-3
@@ -32,7 +32,7 @@ import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ReplicationStateDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ScoreCorrectionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ScoreCorrectionProviderDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.SwissTimingConfigurationDTO;
|
||||
@@ -229,6 +229,6 @@ public interface SailingService extends RemoteService {
|
||||
|
||||
Iterable<ScoreCorrectionProviderDTO> getScoreCorrectionProviderDTOs() throws Exception;
|
||||
|
||||
ScoreCorrectionDTO getScoreCorrections(String scoreCorrectionProviderName, String eventName, String boatClassName,
|
||||
Date timePointWhenResultPublished);
|
||||
RegattaScoreCorrectionDTO getScoreCorrections(String scoreCorrectionProviderName, String eventName, String boatClassName,
|
||||
Date timePointWhenResultPublished) throws Exception;
|
||||
}
|
||||
+2
-2
@@ -31,7 +31,7 @@ import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ReplicationStateDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ScoreCorrectionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ScoreCorrectionProviderDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.SwissTimingConfigurationDTO;
|
||||
@@ -391,5 +391,5 @@ public interface SailingServiceAsync {
|
||||
void getScoreCorrectionProviderDTOs(AsyncCallback<Iterable<ScoreCorrectionProviderDTO>> callback);
|
||||
|
||||
void getScoreCorrections(String scoreCorrectionProviderName, String eventName, String boatClassName,
|
||||
Date timePointWhenResultPublished, AsyncCallback<ScoreCorrectionDTO> asyncCallback);
|
||||
Date timePointWhenResultPublished, AsyncCallback<RegattaScoreCorrectionDTO> asyncCallback);
|
||||
}
|
||||
+9
-11
@@ -1,28 +1,20 @@
|
||||
package com.sap.sailing.gwt.ui.leaderboardedit;
|
||||
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.DataEntryDialog;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ScoreCorrectionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO;
|
||||
|
||||
public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog<ScoreCorrectionsApplicationInstructions> {
|
||||
|
||||
public MatchAndApplyScoreCorrectionsDialog(String title, String message, String okButtonName,
|
||||
String cancelButtonName,
|
||||
com.sap.sailing.gwt.ui.client.DataEntryDialog.Validator<ScoreCorrectionsApplicationInstructions> validator,
|
||||
AsyncCallback<ScoreCorrectionsApplicationInstructions> callback) {
|
||||
super(title, message, okButtonName, cancelButtonName, validator, callback);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public MatchAndApplyScoreCorrectionsDialog(LeaderboardDTO leaderboard, StringMessages stringMessages,
|
||||
SailingServiceAsync sailingService, ErrorReporter errorReporter, ScoreCorrectionDTO result) {
|
||||
SailingServiceAsync sailingService, ErrorReporter errorReporter, RegattaScoreCorrectionDTO result) {
|
||||
super(stringMessages.assignRaceNumbersToRaceColumns(), stringMessages.assignRaceNumbersToRaceColumns(),
|
||||
stringMessages.ok(), stringMessages.cancel(), new Validator(), new Callback());
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -31,6 +23,12 @@ public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog<ScoreCo
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Widget getAdditionalWidget() {
|
||||
// TODO Auto-generated method stub
|
||||
return super.getAdditionalWidget();
|
||||
}
|
||||
|
||||
private static class Validator implements DataEntryDialog.Validator<ScoreCorrectionsApplicationInstructions> {
|
||||
@Override
|
||||
public String getErrorMessage(ScoreCorrectionsApplicationInstructions valueToValidate) {
|
||||
|
||||
+3
-8
@@ -9,17 +9,14 @@ import com.google.gwt.user.client.ui.ListBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.actions.GetLeaderboardByNameAction;
|
||||
import com.sap.sailing.gwt.ui.client.DataEntryDialog;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ScoreCorrectionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO;
|
||||
|
||||
public class ResultSelectionAndApplyDialog extends DataEntryDialog<Triple<String, String, Pair<String, Date>>> {
|
||||
private final StringMessages stringMessages;
|
||||
private final ErrorReporter errorReporter;
|
||||
private final LinkedHashMap<String, Triple<String, String, Pair<String, Date>>> values;
|
||||
private ListBox listBox;
|
||||
|
||||
@@ -31,8 +28,6 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog<Triple<String
|
||||
super(stringMessages.selectResultListToImportFrom(), stringMessages.selectResultListToImportFrom(),
|
||||
stringMessages.ok(), stringMessages.cancel(), new Validator(),
|
||||
new Callback(sailingService, leaderboard, errorReporter, stringMessages));
|
||||
this.stringMessages = stringMessages;
|
||||
this.errorReporter = errorReporter;
|
||||
this.values = new LinkedHashMap<String, Triple<String, String, Pair<String, Date>>>();
|
||||
for (Triple<String, String, Pair<String, Date>> v : values) {
|
||||
this.values.put("" + v.getA() + ": " + v.getB() + " - " + v.getC().getA() + " "
|
||||
@@ -74,7 +69,7 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog<Triple<String
|
||||
final String boatClassName = result.getC().getA();
|
||||
final Date timePointWhenResultPublished = result.getC().getB();
|
||||
sailingService.getScoreCorrections(scoreCorrectionProviderName, eventName, boatClassName, timePointWhenResultPublished,
|
||||
new AsyncCallback<ScoreCorrectionDTO>() {
|
||||
new AsyncCallback<RegattaScoreCorrectionDTO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError(stringMessages.errorObtainingScoreCorrections(scoreCorrectionProviderName,
|
||||
@@ -82,7 +77,7 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog<Triple<String
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(ScoreCorrectionDTO result) {
|
||||
public void onSuccess(RegattaScoreCorrectionDTO result) {
|
||||
new MatchAndApplyScoreCorrectionsDialog(leaderboard, stringMessages, sailingService, errorReporter, result).show();
|
||||
}
|
||||
});
|
||||
|
||||
+7
-7
@@ -76,7 +76,7 @@ import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.domain.common.ScoreCorrections;
|
||||
import com.sap.sailing.domain.common.RegattaScoreCorrections;
|
||||
import com.sap.sailing.domain.common.Speed;
|
||||
import com.sap.sailing.domain.common.Tack;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
@@ -148,7 +148,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ReplicaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ReplicationMasterDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ReplicationStateDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ScoreCorrectionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ScoreCorrectionProviderDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.SeriesDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.SpeedWithBearingDTO;
|
||||
@@ -2051,9 +2051,9 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
}
|
||||
|
||||
@Override
|
||||
public ScoreCorrectionDTO getScoreCorrections(String scoreCorrectionProviderName, String eventName,
|
||||
String boatClassName, Date timePointWhenResultPublished) {
|
||||
ScoreCorrectionDTO result = null;
|
||||
public RegattaScoreCorrectionDTO getScoreCorrections(String scoreCorrectionProviderName, String eventName,
|
||||
String boatClassName, Date timePointWhenResultPublished) throws Exception {
|
||||
RegattaScoreCorrectionDTO result = null;
|
||||
for (ScoreCorrectionProvider scp : getScoreCorrectionProviders2()) {
|
||||
if (scp.getName().equals(scoreCorrectionProviderName)) {
|
||||
result = createScoreCorrection(scp.getScoreCorrections(eventName, boatClassName,
|
||||
@@ -2063,8 +2063,8 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
return result;
|
||||
}
|
||||
|
||||
private ScoreCorrectionDTO createScoreCorrection(ScoreCorrections scoreCorrections) {
|
||||
private RegattaScoreCorrectionDTO createScoreCorrection(RegattaScoreCorrections scoreCorrections) {
|
||||
// TODO Auto-generated method stub
|
||||
return new ScoreCorrectionDTO();
|
||||
return new RegattaScoreCorrectionDTO();
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -4,7 +4,7 @@ import java.util.Map;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
public class ScoreCorrectionDTO implements IsSerializable {
|
||||
public class RegattaScoreCorrectionDTO implements IsSerializable {
|
||||
public class ScoreCorrectionEntryDTO implements IsSerializable {
|
||||
public ScoreCorrectionEntryDTO() {}
|
||||
|
||||
@@ -13,9 +13,9 @@ public class ScoreCorrectionDTO implements IsSerializable {
|
||||
private String providerName;
|
||||
private Map<Integer, Map<CompetitorDTO, ScoreCorrectionEntryDTO>> scoreCorrectionsByRaceNumber;
|
||||
|
||||
public ScoreCorrectionDTO() {}
|
||||
public RegattaScoreCorrectionDTO() {}
|
||||
|
||||
public ScoreCorrectionDTO(String providerName,
|
||||
public RegattaScoreCorrectionDTO(String providerName,
|
||||
Map<Integer, Map<CompetitorDTO, ScoreCorrectionEntryDTO>> scoreCorrectionsByRaceNumber) {
|
||||
super();
|
||||
this.providerName = providerName;
|
||||
+2
@@ -22,4 +22,6 @@ public interface RaceSummary {
|
||||
* Retrieves the {@link BoatResultInRace} data that <code>boat</code> achieved in the race summarized by this object
|
||||
*/
|
||||
BoatResultInRace getBoatResults(Boat boat);
|
||||
|
||||
Boat getBoat(String sailingNumber);
|
||||
}
|
||||
+11
@@ -1,5 +1,6 @@
|
||||
package com.sap.sailing.kiworesultimport.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.kiworesultimport.Boat;
|
||||
@@ -9,6 +10,7 @@ import com.sap.sailing.kiworesultimport.RaceSummary;
|
||||
public class RaceSummaryImpl implements RaceSummary {
|
||||
private final String boatClassName;
|
||||
private final Map<Boat, BoatResultInRace> boatResults;
|
||||
private final Map<String, Boat> sailingNumberToBoat;
|
||||
private final Iterable<String> fleetNames;
|
||||
private final int raceNumber;
|
||||
|
||||
@@ -18,6 +20,10 @@ public class RaceSummaryImpl implements RaceSummary {
|
||||
this.boatResults = boatResults;
|
||||
this.raceNumber = raceNumber;
|
||||
this.fleetNames = fleetNames;
|
||||
this.sailingNumberToBoat = new HashMap<String, Boat>();
|
||||
for (Boat boat : boatResults.keySet()) {
|
||||
sailingNumberToBoat.put(boat.getSailingNumber(), boat);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -39,6 +45,11 @@ public class RaceSummaryImpl implements RaceSummary {
|
||||
public BoatResultInRace getBoatResults(Boat boat) {
|
||||
return boatResults.get(boat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boat getBoat(String sailingNumber) {
|
||||
return sailingNumberToBoat.get(sailingNumber);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<String> getFleetNames() {
|
||||
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
package com.sap.sailing.kiworesultimport.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.RegattaScoreCorrections;
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.kiworesultimport.Boat;
|
||||
import com.sap.sailing.kiworesultimport.BoatResultInRace;
|
||||
import com.sap.sailing.kiworesultimport.Crewmember;
|
||||
import com.sap.sailing.kiworesultimport.RaceSummary;
|
||||
import com.sap.sailing.kiworesultimport.RegattaSummary;
|
||||
|
||||
public class RegattaSummaryAsScoreCorrections implements RegattaScoreCorrections {
|
||||
private final RegattaSummary regattaSummary;
|
||||
private final ScoreCorrectionProvider provider;
|
||||
|
||||
public RegattaSummaryAsScoreCorrections(RegattaSummary regattaSummary, ScoreCorrectionProvider provider) {
|
||||
super();
|
||||
this.regattaSummary = regattaSummary;
|
||||
this.provider = provider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRegattaName() {
|
||||
return regattaSummary.getEventName()+" ("+regattaSummary.getBoatClassName()+")";
|
||||
}
|
||||
|
||||
@Override
|
||||
public ScoreCorrectionProvider getProvider() {
|
||||
return provider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<ScoreCorrectionsForRace> getScoreCorrectionsForRaces() {
|
||||
List<ScoreCorrectionsForRace> result = new ArrayList<ScoreCorrectionsForRace>();
|
||||
for (RaceSummary raceSummary : regattaSummary.getRaces()) {
|
||||
result.add(new ZipFileScoreCorrectionsForRace(raceSummary));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private class ZipFileScoreCorrectionsForRace implements ScoreCorrectionsForRace {
|
||||
private final RaceSummary raceSummary;
|
||||
|
||||
public ZipFileScoreCorrectionsForRace(RaceSummary raceSummary) {
|
||||
this.raceSummary = raceSummary;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRaceNameOrNumber() {
|
||||
return ""+raceSummary.getRaceNumber();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getSailIDs() {
|
||||
Set<String> result = new HashSet<String>();
|
||||
for (Boat boat : raceSummary.getBoats()) {
|
||||
result.add(boat.getSailingNumber());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ScoreCorrectionForCompetitorInRace getScoreCorrectionForCompetitor(String sailID) {
|
||||
ScoreCorrectionForCompetitorInRace result = null;
|
||||
final Boat boat = raceSummary.getBoat(sailID);
|
||||
if (boat != null) {
|
||||
String boatName = getNameForBoat(boat);
|
||||
result = new ZipFileScoreCorrectionForCompetitorInRace(raceSummary.getBoatResults(boat), sailID, boatName);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private String getNameForBoat(Boat boat) {
|
||||
String result = boat.getName(); // often empty
|
||||
if (result == null || result.trim().length() == 0) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(boat.getCrew().getSkipper().getName());
|
||||
for (Crewmember crewmember : boat.getCrew().getCrewmembers()) {
|
||||
sb.append(" + ");
|
||||
sb.append(crewmember.getName());
|
||||
}
|
||||
result = sb.toString();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
private class ZipFileScoreCorrectionForCompetitorInRace implements ScoreCorrectionForCompetitorInRace {
|
||||
|
||||
private final BoatResultInRace boatResults;
|
||||
private final String sailID;
|
||||
private final String boatName;
|
||||
|
||||
public ZipFileScoreCorrectionForCompetitorInRace(BoatResultInRace boatResults, String sailID, String boatName) {
|
||||
this.boatResults = boatResults;
|
||||
this.sailID = sailID;
|
||||
this.boatName = boatName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSailID() {
|
||||
return sailID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCompetitorName() {
|
||||
return boatName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getPoints() {
|
||||
return boatResults.getPoints();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaxPointsReason getMaxPointsReason() {
|
||||
return boatResults.getMaxPointsReason();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean isDiscarded() {
|
||||
return boatResults.isDiscarded();
|
||||
}
|
||||
}
|
||||
}
|
||||
+27
-5
@@ -3,8 +3,10 @@ package com.sap.sailing.kiworesultimport.impl;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -12,8 +14,8 @@ import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import com.sap.sailing.domain.common.RegattaScoreCorrections;
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.domain.common.ScoreCorrections;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.kiworesultimport.ParserFactory;
|
||||
@@ -48,7 +50,7 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider {
|
||||
@Override
|
||||
public Map<String, Set<Pair<String, TimePoint>>> getHasResultsForBoatClassFromDateByEventName()
|
||||
throws IOException, SAXException, ParserConfigurationException {
|
||||
Map<String, Set<Pair<String, TimePoint>>> result = new HashMap<String, Set<Pair<String,TimePoint>>>();
|
||||
Map<String, Set<Pair<String, TimePoint>>> result = new HashMap<String, Set<Pair<String, TimePoint>>>();
|
||||
ZipFileParser zipFileParser = ParserFactory.INSTANCE.createZipFileParser();
|
||||
for (File file : scanDir.listFiles()) {
|
||||
String eventName = null;
|
||||
@@ -68,10 +70,30 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider {
|
||||
return result;
|
||||
}
|
||||
|
||||
private Iterable<RegattaSummary> getAllRegattaSummaries() throws IOException, SAXException, ParserConfigurationException {
|
||||
List<RegattaSummary> result = new ArrayList<RegattaSummary>();
|
||||
ZipFileParser zipFileParser = ParserFactory.INSTANCE.createZipFileParser();
|
||||
for (File file : scanDir.listFiles()) {
|
||||
if (file.getName().toLowerCase().endsWith(".zip")) {
|
||||
ZipFile zipFile = zipFileParser.parse(new FileInputStream(file));
|
||||
for (RegattaSummary regattaSummary : zipFile.getRegattaSummaries()) {
|
||||
result.add(regattaSummary);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ScoreCorrections getScoreCorrections(String eventName, String boatClassName, TimePoint millisecondsTimePoint) {
|
||||
// TODO cache previous ZipFile results by event name and boatClassName and TimePoint to be able to deliver now
|
||||
return new ZipFileAsScoreCorrections(/* TODO */ null);
|
||||
public RegattaScoreCorrections getScoreCorrections(String eventName, String boatClassName,
|
||||
TimePoint timePointPublished) throws IOException, SAXException, ParserConfigurationException {
|
||||
for (RegattaSummary regattaSummary : getAllRegattaSummaries()) {
|
||||
if (regattaSummary.getEventName().equals(eventName) && regattaSummary.getBoatClassName().equals(boatClassName) &&
|
||||
regattaSummary.getTimePointPublished().equals(timePointPublished)) {
|
||||
return new RegattaSummaryAsScoreCorrections(regattaSummary, this);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
package com.sap.sailing.kiworesultimport.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.ScoreCorrections;
|
||||
import com.sap.sailing.kiworesultimport.ZipFile;
|
||||
|
||||
public class ZipFileAsScoreCorrections implements ScoreCorrections {
|
||||
private final ZipFile zipFile;
|
||||
|
||||
public ZipFileAsScoreCorrections(ZipFile zipFile) {
|
||||
super();
|
||||
this.zipFile = zipFile;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user