mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-23 14:08:40 +00:00
reduce code duplication: introduced a Helper to check if a race is at the same day as a given day
This commit is contained in:
@@ -13,4 +13,5 @@ Export-Package: com.sap.sailing.domain.common,
|
||||
com.sap.sailing.domain.common.quadtree,
|
||||
com.sap.sailing.domain.common.quadtree.impl;x-friends:="com.sap.sailing.domain.test",
|
||||
com.sap.sailing.domain.common.racelog,
|
||||
com.sap.sailing.domain.common.racelog.utils,
|
||||
com.sap.sailing.domain.common.dto
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package com.sap.sailing.domain.common.racelog.utils;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
|
||||
public class RaceStateOfSameDayHelper {
|
||||
|
||||
public static boolean isRaceStateOfSameDay(TimePoint raceStartTimePoint, TimePoint raceFinishedTimePoint, Calendar now) {
|
||||
Date raceStartTime = null;
|
||||
Date raceFinishedTime = null;
|
||||
|
||||
if (raceStartTimePoint != null) {
|
||||
raceStartTime = raceStartTimePoint.asDate();
|
||||
}
|
||||
if (raceFinishedTimePoint != null) {
|
||||
raceFinishedTime = raceFinishedTimePoint.asDate();
|
||||
}
|
||||
|
||||
return isRaceStateOfSameDay(raceStartTime, raceFinishedTime, now);
|
||||
}
|
||||
|
||||
public static boolean isRaceStateOfSameDay(Date raceStartTime, Date raceFinishedTime, Calendar now) {
|
||||
boolean result = false;
|
||||
if (raceFinishedTime != null) {
|
||||
Calendar finishedTimeCal = Calendar.getInstance();
|
||||
finishedTimeCal.setTime(raceFinishedTime);
|
||||
if(isSameDay(now, finishedTimeCal)) {
|
||||
result = true;
|
||||
}
|
||||
} else if (raceStartTime != null) {
|
||||
Calendar startTimeCal = Calendar.getInstance();
|
||||
startTimeCal.setTime(raceStartTime);
|
||||
if(isSameDay(now, startTimeCal)) {
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static boolean isSameDay(Calendar cal1, Calendar cal2) {
|
||||
return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
|
||||
cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);
|
||||
}
|
||||
|
||||
}
|
||||
+2
-24
@@ -127,6 +127,7 @@ import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.domain.common.impl.WindSourceImpl;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.domain.common.racelog.utils.RaceStateOfSameDayHelper;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.leaderboard.MetaLeaderboard;
|
||||
@@ -3034,36 +3035,13 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
entry.raceInfo = createRaceInfoDTO(seriesName, raceColumn, fleet);
|
||||
|
||||
if (showOnlyRacesOfSameDay) {
|
||||
if (!isRaceStateOfSameDay(entry.raceInfo, dayToCheck)) {
|
||||
if (!RaceStateOfSameDayHelper.isRaceStateOfSameDay(entry.raceInfo.startTime, entry.raceInfo.finishedTime, dayToCheck)) {
|
||||
entry = null;
|
||||
}
|
||||
}
|
||||
return entry;
|
||||
}
|
||||
|
||||
private boolean isRaceStateOfSameDay(RaceInfoDTO raceInfo, Calendar now) {
|
||||
boolean result = false;
|
||||
if (raceInfo.finishedTime != null) {
|
||||
Calendar finishedTimeCal = Calendar.getInstance();
|
||||
finishedTimeCal.setTime(raceInfo.finishedTime);
|
||||
if(isSameDay(now, finishedTimeCal)) {
|
||||
result = true;
|
||||
}
|
||||
} else if (raceInfo.startTime != null) {
|
||||
Calendar startTimeCal = Calendar.getInstance();
|
||||
startTimeCal.setTime(raceInfo.startTime);
|
||||
if(isSameDay(now, startTimeCal)) {
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean isSameDay(Calendar cal1, Calendar cal2) {
|
||||
return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
|
||||
cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);
|
||||
}
|
||||
|
||||
public String getBuildVersion() {
|
||||
String version = "Unknown or Development";
|
||||
File versionfile = new File(System.getProperty("jetty.home") + File.separator + "version.txt");
|
||||
|
||||
+3
-18
@@ -20,6 +20,7 @@ import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.domain.common.racelog.utils.RaceStateOfSameDayHelper;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogFlagEvent;
|
||||
@@ -113,27 +114,11 @@ public class EventRaceStatesJsonGetServlet extends AbstractJsonHttpServlet {
|
||||
if (raceLog != null && !raceLog.isEmpty()) {
|
||||
TimePoint startTime = new StartTimeFinder(raceLog).getStartTime();
|
||||
TimePoint finishedTime = new FinishedTimeFinder(raceLog).getFinishedTime();
|
||||
if(finishedTime != null) {
|
||||
Calendar finishedTimeCal = Calendar.getInstance();
|
||||
finishedTimeCal.setTime(finishedTime.asDate());
|
||||
if(isSameDay(now, finishedTimeCal)) {
|
||||
result = true;
|
||||
}
|
||||
} else if(startTime != null) {
|
||||
Calendar startTimeCal = Calendar.getInstance();
|
||||
startTimeCal.setTime(startTime.asDate());
|
||||
if(isSameDay(now, startTimeCal)) {
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
|
||||
result = RaceStateOfSameDayHelper.isRaceStateOfSameDay(startTime, finishedTime, now);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean isSameDay(Calendar cal1, Calendar cal2) {
|
||||
return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
|
||||
cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);
|
||||
}
|
||||
|
||||
private JSONObject createRaceStateJsonObject(RaceColumn raceColumn, Fleet fleet) {
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
Reference in New Issue
Block a user