From ee9238541aed2bf87cc624cb671f57dc4bd102f6 Mon Sep 17 00:00:00 2001 From: Henri Kohlberg Date: Fri, 21 Sep 2018 12:16:58 +0200 Subject: [PATCH] Bug 4104: Renamed latestReceivedTagTime on server side to searchSince to match role. --- .../sailing/gwt/ui/client/SailingService.java | 18 ++++++++++++++--- .../gwt/ui/client/SailingServiceAsync.java | 5 ++--- .../gwt/ui/server/SailingServiceImpl.java | 20 ++++--------------- .../server/tagging/TaggingService.java | 11 +++++----- .../server/tagging/TaggingServiceImpl.java | 12 +++++------ 5 files changed, 33 insertions(+), 33 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index b3011827b19..1617ea5e649 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -12,6 +12,7 @@ import com.google.gwt.user.client.rpc.RemoteService; import com.sap.sailing.domain.abstractlog.Revokable; import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.RaceLogTagEvent; +import com.sap.sailing.domain.abstractlog.race.state.ReadonlyRaceState; import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDenoteForTrackingEvent; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.CompetitorDescriptor; @@ -64,6 +65,7 @@ import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; import com.sap.sailing.gwt.ui.adminconsole.RaceLogSetTrackingTimesDTO; import com.sap.sailing.gwt.ui.client.shared.charts.MarkPositionService.MarkTrackDTO; import com.sap.sailing.gwt.ui.client.shared.charts.MarkPositionService.MarkTracksDTO; +import com.sap.sailing.gwt.ui.server.RaceLogTagEvents; import com.sap.sailing.gwt.ui.shared.BulkScoreCorrectionDTO; import com.sap.sailing.gwt.ui.shared.CompactBoatPositionsDTO; import com.sap.sailing.gwt.ui.shared.CompactRaceMapDataDTO; @@ -197,13 +199,23 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS RaceTimesInfoDTO getRaceTimesInfo(RegattaAndRaceIdentifier raceIdentifier); - RaceTimesInfoDTO getRaceTimesInfoIncludingTags(RegattaAndRaceIdentifier raceIdentifier, - TimePoint latestReceivedTagTime); + /** + * Returns {@link RaceTimesInfoDTO race times info} for specified race (raceIdentifier) including + * {@link RaceLogTagEvent tag events} since received timestamp (searchSince). Loads tags from + * {@link ReadonlyRaceState cache} instead of scanning the whole {@link RaceLog} every request. + */ + RaceTimesInfoDTO getRaceTimesInfoIncludingTags(RegattaAndRaceIdentifier raceIdentifier, TimePoint searchSince); List getRaceTimesInfos(Collection raceIdentifiers); + /** + * Collects besides {@link RaceTimesInfoDTO race times infos} public {@link RaceLogTagEvent tag events} from + * {@link ReadonlyRaceState cache} and compares the createdAt timepoint to the received + * searchSince timepoint. Returns {@link RaceTimesInfoDTO race times infos} including + * {@link RaceLogTagEvents public tag events} since the latest client-side received tag. + */ List getRaceTimesInfosIncludingTags(Collection raceIdentifiers, - Map latestReceivedTagTimes); + Map searchSinceMap); CoursePositionsDTO getCoursePositions(RegattaAndRaceIdentifier raceIdentifier, Date date); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index 39067c25457..d734ae68338 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -240,15 +240,14 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan void getRaceTimesInfo(RegattaAndRaceIdentifier raceIdentifier, AsyncCallback callback); - void getRaceTimesInfoIncludingTags(RegattaAndRaceIdentifier raceIdentifier, TimePoint latestReceivedTagTime, + void getRaceTimesInfoIncludingTags(RegattaAndRaceIdentifier raceIdentifier, TimePoint searchSince, AsyncCallback callback); void getRaceTimesInfos(Collection raceIdentifiers, AsyncCallback> callback); void getRaceTimesInfosIncludingTags(Collection raceIdentifiers, - Map latestReceivedTagTimes, - AsyncCallback> callback); + Map searchSinceMap, AsyncCallback> callback); void getCoursePositions(RegattaAndRaceIdentifier raceIdentifier, Date date, AsyncCallback asyncCallback); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 12c82d290f4..8830a079090 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -2234,17 +2234,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet return raceTimesInfo; } - /** - * Returns {@link RaceTimesInfoDTO race times info} for specified race (raceIdentifier) including - * {@link RaceLogTagEvent tag events} since received timestamp (latestReceivedTagTime). Loads tags from - * {@link ReadonlyRaceState cache} instead of scanning the whole {@link RaceLog} every request. - */ - // TODO: rename latestReceivedTagTime to match role @Override public RaceTimesInfoDTO getRaceTimesInfoIncludingTags(RegattaAndRaceIdentifier raceIdentifier, - TimePoint latestReceivedTagTime) { + TimePoint searchSince) { RaceTimesInfoDTO raceTimesInfo = getRaceTimesInfo(raceIdentifier); - raceTimesInfo.setTags(getService().getTaggingService().getPublicTags(raceIdentifier, latestReceivedTagTime)); + raceTimesInfo.setTags(getService().getTaggingService().getPublicTags(raceIdentifier, searchSince)); return raceTimesInfo; } @@ -2260,19 +2254,13 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet return raceTimesInfos; } - /** - * Collects besides {@link RaceTimesInfoDTO race times infos} public {@link RaceLogTagEvent tag events} from - * {@link ReadonlyRaceState cache} and compares the createdAt timepoint to the received latest tag - * creation timepoint. Returns {@link RaceTimesInfoDTO race times infos} including {@link RaceLogTagEvents public - * tag events} since the latest client-side received tag. - */ @Override public List getRaceTimesInfosIncludingTags(Collection raceIdentifiers, - Map latestReceivedTagTimes) { + Map searchSinceMap) { List raceTimesInfos = new ArrayList(); for (RegattaAndRaceIdentifier raceIdentifier : raceIdentifiers) { RaceTimesInfoDTO raceTimesInfo = getRaceTimesInfoIncludingTags(raceIdentifier, - latestReceivedTagTimes.get(raceIdentifier)); + searchSinceMap.get(raceIdentifier)); if (raceTimesInfo != null) { raceTimesInfos.add(raceTimesInfo); } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingService.java index 06d9badbb9b..0c75b494340 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingService.java @@ -9,7 +9,6 @@ import com.sap.sse.common.TimePoint; // TODO: Replace error handling by throwing exceptions, see "topleveltranslations.json" // TODO: CommentTooLong -// TODO: rename latestReceivedTagTime to match role // TODO: remove entry in settings if there are no private tags for this race anymore // TODO: rename keys to naming pattern (ssailing.tags....) // TODO: use document settings id for tags/tag-buttons/... as race identifier @@ -119,8 +118,8 @@ public interface TaggingService { * new privacy status * @return true if tag was updated successfully, otherwise false */ - boolean updateTag(String leaderboardName, String raceColumnName, String fleetName, TagDTO tagToUpdate, - String tag, String comment, String imageURL, boolean visibleForPublic); + boolean updateTag(String leaderboardName, String raceColumnName, String fleetName, TagDTO tagToUpdate, String tag, + String comment, String imageURL, boolean visibleForPublic); /** * Returns all public tags for the specified race. @@ -137,14 +136,16 @@ public interface TaggingService { List getPublicTags(String leaderboardName, String raceColumnName, String fleetName); /** - * Returns all public tags since the given latestReceivedTagTime for the specified race. + * Returns all public tags since the given searchSinceTimePoint for the specified race. * * @param raceIdentifier * required to identify {@link RaceLog}, must NOT be null + * @param searchSince + * tags will only be returned if they got created after this time point * @return list of {@link TagDTO tags}, empty list in case an error occurs or there are no tags available but * never null! */ - List getPublicTags(RegattaAndRaceIdentifier raceIdentifier, TimePoint latestReceivedTagTime); + List getPublicTags(RegattaAndRaceIdentifier raceIdentifier, TimePoint searchSince); /** * Returns all private tags of current user for the specified race. diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceImpl.java index 9f4ca873e92..33103a4dfa0 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/tagging/TaggingServiceImpl.java @@ -280,7 +280,7 @@ public class TaggingServiceImpl implements TaggingService { } @Override - public List getPublicTags(RegattaAndRaceIdentifier raceIdentifier, TimePoint latestReceivedTagTime) { + public List getPublicTags(RegattaAndRaceIdentifier raceIdentifier, TimePoint searchSince) { final List result = new ArrayList(); TrackedRace trackedRace = racingService.getExistingTrackedRace(raceIdentifier); Iterable raceLogs = trackedRace.getAttachedRaceLogs(); @@ -288,11 +288,11 @@ public class TaggingServiceImpl implements TaggingService { ReadonlyRaceState raceState = ReadonlyRaceStateImpl.getOrCreate(racingService, raceLog); Iterable foundTagEvents = raceState.getTagEvents(); for (RaceLogTagEvent tagEvent : foundTagEvents) { - if ((latestReceivedTagTime == null && tagEvent.getRevokedAt() == null) - || (latestReceivedTagTime != null && tagEvent.getRevokedAt() == null - && tagEvent.getCreatedAt().after(latestReceivedTagTime)) - || (latestReceivedTagTime != null && tagEvent.getRevokedAt() != null - && tagEvent.getRevokedAt().after(latestReceivedTagTime))) { + if ((searchSince == null && tagEvent.getRevokedAt() == null) + || (searchSince != null && tagEvent.getRevokedAt() == null + && tagEvent.getCreatedAt().after(searchSince)) + || (searchSince != null && tagEvent.getRevokedAt() != null + && tagEvent.getRevokedAt().after(searchSince))) { result.add(new TagDTO(tagEvent.getTag(), tagEvent.getComment(), tagEvent.getImageURL(), true, tagEvent.getUsername(), tagEvent.getLogicalTimePoint(), tagEvent.getCreatedAt(), tagEvent.getRevokedAt()));