diff --git a/java/com.sap.sailing.kiworesultimport.test/src/com/sap/sailing/kiworesultimport/test/ParserTest.java b/java/com.sap.sailing.kiworesultimport.test/src/com/sap/sailing/kiworesultimport/test/ParserTest.java index b065569e3bb..986c050acd8 100755 --- a/java/com.sap.sailing.kiworesultimport.test/src/com/sap/sailing/kiworesultimport/test/ParserTest.java +++ b/java/com.sap.sailing.kiworesultimport.test/src/com/sap/sailing/kiworesultimport/test/ParserTest.java @@ -30,7 +30,7 @@ import com.sap.sailing.kiworesultimport.Race; import com.sap.sailing.kiworesultimport.Races; import com.sap.sailing.kiworesultimport.ResultList; import com.sap.sailing.kiworesultimport.ResultListParser; -import com.sap.sailing.kiworesultimport.ResultListParserFactory; +import com.sap.sailing.kiworesultimport.ParserFactory; import com.sap.sailing.kiworesultimport.Skipper; import com.sap.sailing.kiworesultimport.Verteilung; @@ -60,7 +60,7 @@ public class ParserTest { @Test public void testEmptyIsafID() throws FileNotFoundException, SAXException, IOException, ParserConfigurationException { - ResultListParser parser = ResultListParserFactory.INSTANCE.createResultListParser(); + ResultListParser parser = ParserFactory.INSTANCE.createResultListParser(); ResultList resultList = parser.parse(getSampleInputStream()); assertNotNull(resultList); assertNull(resultList.getVerteilung().getBoatBySailID("SWE 1196").getCrew().getSkipper().getIsaf()); @@ -68,7 +68,7 @@ public class ParserTest { @Test public void testEmptyStatus() throws FileNotFoundException, SAXException, IOException, ParserConfigurationException { - ResultListParser parser = ResultListParserFactory.INSTANCE.createResultListParser(); + ResultListParser parser = ParserFactory.INSTANCE.createResultListParser(); ResultList resultList = parser.parse(getSampleInputStream()); assertNotNull(resultList); assertNull(resultList.getVerteilung().getBoatBySailID("SWE 1196").getRaces().getRaces().iterator().next().getStatus()); @@ -76,7 +76,7 @@ public class ParserTest { @Test public void testNonEmptyStatus() throws FileNotFoundException, SAXException, IOException, ParserConfigurationException { - ResultListParser parser = ResultListParserFactory.INSTANCE.createResultListParser(); + ResultListParser parser = ParserFactory.INSTANCE.createResultListParser(); ResultList resultList = parser.parse(getSampleInputStream()); assertNotNull(resultList); assertEquals("DNC", resultList.getVerteilung().getBoatBySailID("GER 1199").getRaces().getRaces().iterator().next().getStatus()); @@ -84,7 +84,7 @@ public class ParserTest { @Test public void testObtainingResultList() throws FileNotFoundException, SAXException, IOException, ParserConfigurationException { - ResultListParser parser = ResultListParserFactory.INSTANCE.createResultListParser(); + ResultListParser parser = ParserFactory.INSTANCE.createResultListParser(); ResultList resultList = parser.parse(getSampleInputStream()); assertNotNull(resultList); assertEquals("D:\\Programme\\KWSailing\\eventlogos\\KielerWoche_Ergebnislistenkopf_2011.jpg", resultList.getImagePfad()); diff --git a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/ParserFactory.java b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/ParserFactory.java new file mode 100755 index 00000000000..5d4101d6d98 --- /dev/null +++ b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/ParserFactory.java @@ -0,0 +1,11 @@ +package com.sap.sailing.kiworesultimport; + +import com.sap.sailing.kiworesultimport.impl.ParserFactoryImpl; + +public interface ParserFactory { + ParserFactory INSTANCE = new ParserFactoryImpl(); + + ResultListParser createResultListParser(); + + StartberichtParser createStartberichtParser(); +} diff --git a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/ResultListParserFactory.java b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/ResultListParserFactory.java deleted file mode 100755 index 647929e46ef..00000000000 --- a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/ResultListParserFactory.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.sap.sailing.kiworesultimport; - -import com.sap.sailing.kiworesultimport.impl.ResultListParserFactoryImpl; - -public interface ResultListParserFactory { - ResultListParserFactory INSTANCE = new ResultListParserFactoryImpl(); - - ResultListParser createResultListParser(); -} diff --git a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/Startbericht.java b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/Startbericht.java new file mode 100755 index 00000000000..f05625455e9 --- /dev/null +++ b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/Startbericht.java @@ -0,0 +1,19 @@ +package com.sap.sailing.kiworesultimport; + +import com.sap.sailing.domain.common.TimePoint; + +public interface Startbericht { + String getDatum(); + + TimePoint getTimePoint(); + + String getRegattabahn(); + + String getKompasskurs(); + + String getWindstaerke(); + + String getWindrichtung(); + + Iterable getStarts(); +} diff --git a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/StartberichtParser.java b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/StartberichtParser.java new file mode 100755 index 00000000000..8261c5ce67f --- /dev/null +++ b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/StartberichtParser.java @@ -0,0 +1,7 @@ +package com.sap.sailing.kiworesultimport; + +import java.io.InputStream; + +public interface StartberichtParser { + Startbericht parse(InputStream inputStream); +} diff --git a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ParserFactoryImpl.java b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ParserFactoryImpl.java new file mode 100755 index 00000000000..11584e57897 --- /dev/null +++ b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ParserFactoryImpl.java @@ -0,0 +1,18 @@ +package com.sap.sailing.kiworesultimport.impl; + +import com.sap.sailing.kiworesultimport.ParserFactory; +import com.sap.sailing.kiworesultimport.ResultListParser; +import com.sap.sailing.kiworesultimport.StartberichtParser; + +public class ParserFactoryImpl implements ParserFactory { + + @Override + public ResultListParser createResultListParser() { + return new ResultListParserImpl(); + } + + @Override + public StartberichtParser createStartberichtParser() { + return new StartberichtParserImpl(); + } +} diff --git a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ResultListParserFactoryImpl.java b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ResultListParserFactoryImpl.java deleted file mode 100755 index cc527c4308b..00000000000 --- a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ResultListParserFactoryImpl.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.sap.sailing.kiworesultimport.impl; - -import com.sap.sailing.kiworesultimport.ResultListParser; -import com.sap.sailing.kiworesultimport.ResultListParserFactory; - -public class ResultListParserFactoryImpl implements ResultListParserFactory { - - @Override - public ResultListParser createResultListParser() { - return new ResultListParserImpl(); - } - -} diff --git a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/StartberichtParserImpl.java b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/StartberichtParserImpl.java new file mode 100755 index 00000000000..c019b3c009e --- /dev/null +++ b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/StartberichtParserImpl.java @@ -0,0 +1,16 @@ +package com.sap.sailing.kiworesultimport.impl; + +import java.io.InputStream; + +import com.sap.sailing.kiworesultimport.Startbericht; +import com.sap.sailing.kiworesultimport.StartberichtParser; + +public class StartberichtParserImpl implements StartberichtParser { + + @Override + public Startbericht parse(InputStream inputStream) { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java index 4b59ce5a85c..3d863884451 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java @@ -45,6 +45,7 @@ import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.persistence.DomainObjectFactory; import com.sap.sailing.domain.persistence.MongoFactory; import com.sap.sailing.domain.persistence.MongoObjectFactory; +import com.sap.sailing.domain.persistence.impl.CollectionNames; import com.sap.sailing.domain.test.AbstractLeaderboardTest; import com.sap.sailing.domain.test.MockedTrackedRaceWithFixedRank; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; @@ -113,6 +114,9 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest @Test public void testLoadStoreRegattaLeaderboardWithScoreCorrections() { + // for some reason the dropping of collections doesn't work reliably on Linux... explicitly drop those collections that we depend on + db.getCollection(CollectionNames.LEADERBOARDS.name()).drop(); + db.getCollection(CollectionNames.REGATTAS.name()).drop(); Competitor hasso = AbstractLeaderboardTest.createCompetitor("Dr. Hasso Plattner"); BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("29erXX", /* typicallyStartsUpwind */ true); final DynamicTrackedRegatta[] trackedRegatta = new DynamicTrackedRegatta[1]; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 2d8b313f38c..c1723d00a20 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -293,11 +293,16 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen @Override public RaceColumn addColumnToLeaderboard(String columnName, String leaderboardName, boolean medalRace) { Leaderboard leaderboard = getLeaderboardByName(leaderboardName); - if (leaderboard != null && leaderboard instanceof FlexibleLeaderboard) { - // uses the default fleet as the single fleet for the new column - RaceColumn result = ((FlexibleLeaderboard) leaderboard).addRaceColumn(columnName, medalRace, leaderboard.getFleet(null)); - updateStoredFlexibleLeaderboard((FlexibleLeaderboard) leaderboard); - return result; + if (leaderboard != null) { + if (leaderboard instanceof FlexibleLeaderboard) { + // uses the default fleet as the single fleet for the new column + RaceColumn result = ((FlexibleLeaderboard) leaderboard).addRaceColumn(columnName, medalRace, + leaderboard.getFleet(null)); + updateStoredFlexibleLeaderboard((FlexibleLeaderboard) leaderboard); + return result; + } else { + throw new IllegalArgumentException("Leaderboard named " + leaderboardName + " is not a FlexibleLeaderboard"); + } } else { throw new IllegalArgumentException("Leaderboard named " + leaderboardName + " not found"); }