removed startanalysiscache

This commit is contained in:
Alexander Ries committed 2015-03-05 09:16:56 +01:00
1 parent deb5dbc2e5
commit d44588ae9c
3 files changed
+13 -72

No files matched your search

@@ -227,14 +227,16 @@ public class RibDashboardServiceImpl extends RemoteServiceServlet implements Rib
@Override
public List<StartAnalysisDTO> getStartAnalysisListForCompetitorIDAndLeaderboardName(String competitorIdAsString,
String leaderboardName) {
logger.log(Level.INFO, "Recevied getStartAnalysisListForCompetitorIDAndLeaderboardName(...) Request.");
List<StartAnalysisDTO> startAnalysisDTOs = new ArrayList<StartAnalysisDTO>();
Competitor competitor = baseDomainFactory.getCompetitorStore().getExistingCompetitorByIdAsString(
competitorIdAsString);
List<TrackedRace> trackedRacesForLeaderBoardName = getTrackedRacesFromLeaderboard(leaderboardName);
for (TrackedRace trackedRace : trackedRacesForLeaderBoardName) {
startAnalysisCreationController.checkForNewStartAnalysisForCompetitorInTrackedRace(competitor, trackedRace);
StartAnalysisDTO startAnalysisDTO = startAnalysisCreationController.checkStartAnalysisForCompetitorInTrackedRace(competitor, trackedRace);
if (startAnalysisDTO != null)
startAnalysisDTOs.add(startAnalysisDTO);
}
return startAnalysisCreationController.getStartAnalysisCache().getStartAnalysisDTOsForCompetitor(competitor);
return startAnalysisDTOs;
}
@Override
@@ -1,54 +0,0 @@
package com.sap.sailing.dashboards.gwt.server.startanalysis;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.sap.sailing.dashboards.gwt.shared.dto.startanalysis.StartAnalysisDTO;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.tracking.TrackedRace;
public class StartAnalysisCache {
private Map<TrackedRace, Map<Competitor, StartAnalysisDTO>> startAnalyisisDTOForTrackedRacesAndCompetitors;
public StartAnalysisCache(){
startAnalyisisDTOForTrackedRacesAndCompetitors = new HashMap<TrackedRace, Map<Competitor,StartAnalysisDTO>>();
}
public void addStartAnalysisDTOFor(StartAnalysisDTO startAnalysisDTO, Competitor competitor, TrackedRace trackedRace) {
Map<Competitor, StartAnalysisDTO> startAnalysisListForCompetitor = startAnalyisisDTOForTrackedRacesAndCompetitors
.get(trackedRace);
if (startAnalysisListForCompetitor == null) {
startAnalysisListForCompetitor = new HashMap<Competitor, StartAnalysisDTO>();
startAnalyisisDTOForTrackedRacesAndCompetitors.put(trackedRace, startAnalysisListForCompetitor);
}
if (startAnalysisListForCompetitor.get(competitor) == null) {
startAnalysisListForCompetitor.put(competitor, startAnalysisDTO);
} else {
startAnalysisListForCompetitor.remove(competitor);
}
}
public List<StartAnalysisDTO> getStartAnalysisDTOsForCompetitor(Competitor competitor) {
List<StartAnalysisDTO> startAnalysisList = new ArrayList<StartAnalysisDTO>();
for (Map<Competitor, StartAnalysisDTO> competitorStartAnalysisMap : startAnalyisisDTOForTrackedRacesAndCompetitors
.values()) {
StartAnalysisDTO startAnalysisDTO = competitorStartAnalysisMap.get(competitor);
if (startAnalysisDTO != null)
startAnalysisList.add(startAnalysisDTO);
}
java.util.Collections.sort(startAnalysisList);
return startAnalysisList;
}
public boolean containsStartAnalysisForCompetitorAndTrackedRace(Competitor competitor, TrackedRace trackedRace) {
if (startAnalyisisDTOForTrackedRacesAndCompetitors.containsKey(trackedRace)) {
Map<Competitor, StartAnalysisDTO> competitorStartAnalysisMap = startAnalyisisDTOForTrackedRacesAndCompetitors
.get(trackedRace);
if (competitorStartAnalysisMap.containsKey(competitor))
return true;
}
return false;
}
}
@@ -11,30 +11,23 @@ import com.sap.sailing.server.RacingEventService;
public class StartAnalysisCreationController extends AbstractStartAnalysisCreationValidator {
private StartAnalysisDTOFactory startAnalysisDTOFactory;
private StartAnalysisCache startAnalysisCache;
private static final Logger logger = Logger.getLogger(StartAnalysisCache.class.getName());
private static final Logger logger = Logger.getLogger(StartAnalysisCreationController.class.getName());
public StartAnalysisCreationController(RacingEventService racingEventService) {
startAnalysisDTOFactory = new StartAnalysisDTOFactory(racingEventService);
startAnalysisCache = new StartAnalysisCache();
}
public void checkForNewStartAnalysisForCompetitorInTrackedRace(Competitor competitor, TrackedRace trackedRace) {
if (startAnalysisCache.containsStartAnalysisForCompetitorAndTrackedRace(competitor, trackedRace) == false &&
threeCompetitorsPassedSecondWayPoint(trackedRace) &&
public StartAnalysisDTO checkStartAnalysisForCompetitorInTrackedRace(Competitor competitor, TrackedRace trackedRace) {
StartAnalysisDTO startAnalysisDTO;
if (threeCompetitorsPassedSecondWayPoint(trackedRace) &&
competitorPassedSecondWayPoint(competitor, trackedRace))
{
logger.log(Level.INFO, "Trigger StartAnalysisDTO creation");
if(competitor == null){
logger.log(Level.INFO, "COMPETITOR NULL");
}
StartAnalysisDTO startAnalysisDTO = startAnalysisDTOFactory.createStartAnalysisForCompetitorAndTrackedRace(competitor, trackedRace);
startAnalysisCache.addStartAnalysisDTOFor(startAnalysisDTO, competitor, trackedRace);
startAnalysisDTO = startAnalysisDTOFactory.createStartAnalysisForCompetitorAndTrackedRace(competitor, trackedRace);
return startAnalysisDTO;
}else{
return null;
}
}
public StartAnalysisCache getStartAnalysisCache() {
return startAnalysisCache;
}
}