Refrain from using RegisteredCompetitorsAnalyzer outside of RaceColumn

This commit is contained in:
Jan Broß committed 2015-11-28 12:11:59 +01:00
1 parent 3dbfa39cc9
commit ca3537a463
3 files changed
+12 -24

No files matched your search

@@ -21,7 +21,6 @@ import com.sap.sailing.domain.abstractlog.race.RaceLogEndOfTrackingEvent;
import com.sap.sailing.domain.abstractlog.race.RaceLogEventVisitor;
import com.sap.sailing.domain.abstractlog.race.RaceLogStartOfTrackingEvent;
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.LastPublishedCourseDesignFinder;
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogRegisteredCompetitorsAnalyzer;
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver;
import com.sap.sailing.domain.abstractlog.race.impl.BaseRaceLogEventVisitor;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDenoteForTrackingEvent;
@@ -29,7 +28,6 @@ import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDeviceCompetitorM
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogStartTrackingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.analyzing.impl.RaceInformationFinder;
import com.sap.sailing.domain.abstractlog.race.tracking.analyzing.impl.RaceLogTrackingStateAnalyzer;
import com.sap.sailing.domain.abstractlog.race.tracking.analyzing.impl.RegisteredCompetitorsAnalyzer;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDefineMarkEvent;
@@ -60,7 +58,6 @@ import com.sap.sailing.domain.common.PassingInstruction;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
import com.sap.sailing.domain.common.abstractlog.NotRevokableException;
import com.sap.sailing.domain.common.racelog.tracking.DoesNotHaveRegattaLogException;
import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState;
import com.sap.sailing.domain.common.racelog.tracking.RaceNotCreatedException;
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
@@ -474,19 +471,7 @@ public class RaceLogRaceTracker implements RaceTracker, GPSFixReceivedListener {
}
throw new RaceNotCreatedException(String.format("Race for racelog (%s) has already been created", raceLog));
}
// check both the racelog and regattalog for registered competitors
Set<Competitor> competitors;
try {
RegattaLog regattaLog = params.getRegattaLog();
competitors = new RegisteredCompetitorsAnalyzer(raceLog, regattaLog).analyze();
} catch (DoesNotHaveRegattaLogException e) {
logger.warning(params.getLeaderboard().getName()+" doesn't have an attached RegattaLog");
competitors = new RaceLogRegisteredCompetitorsAnalyzer(raceLog).analyze();
}
Iterable<Competitor> competitors = raceColumn.getAllCompetitors(params.getFleet());
Serializable raceId = denoteEvent.getRaceId();
final RaceDefinition raceDef = new RaceDefinitionImpl(raceName, course, boatClass, competitors, raceId);
Iterable<Sideline> sidelines = Collections.<Sideline> emptyList();
@@ -12,6 +12,9 @@ import com.sap.sailing.domain.base.Competitor;
* Used to find competitors of a race. Checks whether the competitors for the given race are registered on the RaceLog
* via {@link RaceLogUsesOwnCompetitorsAnalyzer} or on the RegattaLog and fetches the competitors appropriately.
*
* Should not be used. Instead get the competitor set from the RaceColumn, which automatically checks wether a
* tracked race is present, which has precedence over the Race/RegattaLog
*
* @author D056848
*
*/
@@ -56,6 +56,7 @@ import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
import org.osgi.util.tracker.ServiceTracker;
import com.google.gwt.thirdparty.guava.common.collect.Iterables;
import com.sap.sailing.domain.abstractlog.AbstractLog;
import com.sap.sailing.domain.abstractlog.AbstractLogEvent;
import com.sap.sailing.domain.abstractlog.MultiLogAnalyzer;
@@ -2389,12 +2390,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
RaceLogTrackingState raceLogTrackingState = raceLog == null ? RaceLogTrackingState.NOT_A_RACELOG_TRACKED_RACE :
new RaceLogTrackingStateAnalyzer(raceLog).analyze();
boolean raceLogTrackerExists = raceLog == null ? false : getService().getRaceTrackerById(raceLog.getId()) != null;
boolean competitorRegistrationsExist;
try {
competitorRegistrationsExist = raceLog == null ? false : ! new RegisteredCompetitorsAnalyzer(raceLog, getRegattaLogInternal(leaderboard.getName())).analyze().isEmpty();
} catch (DoesNotHaveRegattaLogException e) {
competitorRegistrationsExist = false;
}
competitorRegistrationsExist = raceLog == null ? false : Iterables.size(raceColumn.getAllCompetitors(fleet)) > 0 ;
RaceLogTrackingInfoDTO raceLogTrackingInfo = new RaceLogTrackingInfoDTO(raceLogTrackerExists,
competitorRegistrationsExist, raceLogTrackingState);
raceColumnDTO.setRaceLogTrackingInfo(fleetDTO, raceLogTrackingInfo);
@@ -5874,9 +5873,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
@Override
public Collection<CompetitorDTO> getCompetitorRegistrationsForRace(String leaderboardName, String raceColumnName,
String fleetName) throws DoesNotHaveRegattaLogException {
RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName);
RegattaLog regattaLog = getRegattaLogInternal(leaderboardName);
return convertToCompetitorDTOs(new RegisteredCompetitorsAnalyzer(raceLog, regattaLog).analyze());
Leaderboard leaderboard = getService().getLeaderboardByName(leaderboardName);
RaceColumn raceColumn = leaderboard.getRaceColumnByName(raceColumnName);
Fleet fleet = raceColumn.getFleetByName(fleetName);
return convertToCompetitorDTOs(raceColumn.getAllCompetitors(fleet));
}
@Override