implemented mark device mapping check-out in LeaderboardsResource

Change-Id: I6c83db19d3939936f0a572f1eb16e1d82e323693
This commit is contained in:
Axel Uhl committed 2016-06-24 18:26:49 +02:00
1 parent d084dd0c3a
commit fc6be86f7f
16 files changed
+56 -48

No files matched your search

@@ -6,11 +6,10 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
import com.sap.sse.common.Color;
import com.sap.sse.common.Duration;
import com.sap.sse.common.IsManagedByCache;
import com.sap.sse.common.Named;
import com.sap.sse.common.WithID;
import com.sap.sse.common.NamedWithID;
import com.sap.sse.datamining.annotations.Connector;
public interface Competitor extends Named, WithID, IsManagedByCache<SharedDomainFactory> {
public interface Competitor extends NamedWithID, IsManagedByCache<SharedDomainFactory> {
@Connector(messageKey="Team", ordinal=9)
Team getTeam();
@@ -1,8 +1,7 @@
package com.sap.sailing.domain.base;
import com.sap.sse.common.Named;
import com.sap.sse.common.WithID;
import com.sap.sse.common.NamedWithID;
public interface ControlPoint extends WithID, Named {
public interface ControlPoint extends NamedWithID {
Iterable<Mark> getMarks();
}
@@ -3,16 +3,15 @@ package com.sap.sailing.domain.base;
import java.util.UUID;
import com.sap.sse.common.IsManagedByCache;
import com.sap.sse.common.Named;
import com.sap.sse.common.WithID;
import com.sap.sse.common.NamedWithID;
/**
* A named area in a sailing {@link Venue} where races take place. Usually, the areas carry names according to the NATO
* alphabet, such as "Alpha", "Bravo" or "Charlie".
* alphabet, such as "Alpha", "Bravo" or "Charly".
*
* @author Axel Uhl (D043530)
*
*/
public interface CourseArea extends Named, WithID, IsManagedByCache<SharedDomainFactory> {
public interface CourseArea extends NamedWithID, IsManagedByCache<SharedDomainFactory> {
UUID getId();
}
@@ -5,9 +5,8 @@ import java.util.Locale;
import java.util.Map;
import com.sap.sailing.domain.common.Renamable;
import com.sap.sse.common.Named;
import com.sap.sse.common.NamedWithID;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.WithID;
import com.sap.sse.common.media.ImageSize;
import com.sap.sse.shared.media.WithMedia;
@@ -15,7 +14,7 @@ import com.sap.sse.shared.media.WithMedia;
* Base interface for an Event consisting of all static information, which might be shared
* by the server and an Android application.
*/
public interface EventBase extends Named, WithDescription, Renamable, WithID, WithMedia {
public interface EventBase extends NamedWithID, WithDescription, Renamable, WithMedia {
void setDescription(String description);
@@ -3,9 +3,9 @@ package com.sap.sailing.domain.base;
import java.util.UUID;
import com.sap.sailing.domain.common.Renamable;
import com.sap.sse.common.WithID;
import com.sap.sse.common.NamedWithID;
public interface LeaderboardGroupBase extends Renamable, WithID {
public interface LeaderboardGroupBase extends Renamable, NamedWithID {
UUID getId();
String getDescription();
void setDescriptiom(String description);
@@ -2,7 +2,6 @@ package com.sap.sailing.domain.base;
import com.sap.sailing.domain.common.MarkType;
import com.sap.sse.common.IsManagedByCache;
import com.sap.sse.common.WithID;
/**
@@ -12,7 +11,7 @@ import com.sap.sse.common.WithID;
* @author Axel Uhl (D043530)
*
*/
public interface Mark extends WithID, ControlPoint, IsManagedByCache<SharedDomainFactory> {
public interface Mark extends ControlPoint, IsManagedByCache<SharedDomainFactory> {
public String getColor();
public String getShape();
public String getPattern();
@@ -1,13 +1,13 @@
package com.sap.sailing.domain.base;
import com.sap.sse.common.Named;
import com.sap.sse.common.WithID;
import com.sap.sse.common.NamedWithID;
/**
* A side line in a race course
* @author Frank (C5163874)
*
* @author Frank Mittag (C5163874)
*
*/
public interface Sideline extends Named, WithID {
public interface Sideline extends NamedWithID {
Iterable<Mark> getMarks();
}
@@ -3,8 +3,7 @@ package com.sap.sailing.domain.base;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.PassingInstruction;
import com.sap.sse.common.IsManagedByCache;
import com.sap.sse.common.Named;
import com.sap.sse.common.WithID;
import com.sap.sse.common.NamedWithID;
/**
* Waypoints constitute {@link Course}s and demarcate their {@link Leg}s. A waypoint's position is defined by a
@@ -14,7 +13,7 @@ import com.sap.sse.common.WithID;
* @author Axel Uhl (d043530)
*
*/
public interface Waypoint extends Named, WithID, IsManagedByCache<SharedDomainFactory> {
public interface Waypoint extends NamedWithID, IsManagedByCache<SharedDomainFactory> {
ControlPoint getControlPoint();
Iterable<Mark> getMarks();
@@ -2,7 +2,7 @@ package com.sap.sailing.domain.tractracadapter;
import java.util.UUID;
import com.sap.sse.common.WithID;
import com.sap.sse.common.NamedWithID;
import com.tractrac.model.lib.api.event.IEvent;
import com.tractrac.model.lib.api.route.IControlPoint;
@@ -14,14 +14,12 @@ import com.tractrac.model.lib.api.route.IControlPoint;
* @author Axel Uhl (D043530)
*
*/
public interface TracTracControlPoint extends WithID {
public interface TracTracControlPoint extends NamedWithID {
/**
* Refining the return type helps in looking up a control point by its UUID in {@link IEvent}.
*/
UUID getId();
String getName();
String getMetadata();
String getShortName();
@@ -3,8 +3,7 @@ package com.sap.sailing.domain.base;
import java.io.Serializable;
import com.sap.sailing.domain.common.RaceCompetitorIdsAsStringWithMD5Hash;
import com.sap.sse.common.Named;
import com.sap.sse.common.WithID;
import com.sap.sse.common.NamedWithID;
/**
* Tells the {@link BoatClass boat class} and the {@link Course course} for a single race that is usually part of a
@@ -18,7 +17,7 @@ import com.sap.sse.common.WithID;
* @author Axel Uhl (D043530)
*
*/
public interface RaceDefinition extends Named, WithID {
public interface RaceDefinition extends NamedWithID {
BoatClass getBoatClass();
Course getCourse();
@@ -12,9 +12,8 @@ import com.sap.sailing.domain.regattalike.IsRegattaLike;
import com.sap.sailing.domain.tracking.RaceExecutionOrderProvider;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.TrackedRegatta;
import com.sap.sse.common.Named;
import com.sap.sse.common.NamedWithID;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.WithID;
/**
* The name shall be unique across all regattas tracked concurrently. In particular, if you want to keep apart regattas
@@ -23,7 +22,7 @@ import com.sap.sse.common.WithID;
* @author Axel Uhl (d043530)
*
*/
public interface Regatta extends Named, WithID, IsRegattaLike, HasRaceColumnsAndRegattaLike {
public interface Regatta extends NamedWithID, IsRegattaLike, HasRaceColumnsAndRegattaLike {
ScoringScheme getScoringScheme();
/**
@@ -85,6 +85,7 @@ import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSeri
import com.sap.sailing.server.gateway.serialization.impl.FlatGPSFixJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.MarkJsonSerializerWithPosition;
import com.sap.sse.common.Named;
import com.sap.sse.common.NamedWithID;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util;
import com.sap.sse.common.Util.Pair;
@@ -488,11 +489,26 @@ public class LeaderboardsResource extends AbstractSailingServerResource {
return Response.status(Status.BAD_REQUEST).entity("Invalid JSON body in request")
.type(MediaType.TEXT_PLAIN).build();
}
Competitor mappedTo = getService().getCompetitorStore().getExistingCompetitorByIdAsString(competitorId);
if (mappedTo == null) {
logger.warning("No competitor found for id " + competitorId);
return Response.status(Status.BAD_REQUEST).entity("No competitor found for id " + competitorId)
.type(MediaType.TEXT_PLAIN).build();
final NamedWithID mappedTo;
if (competitorId != null) {
final Competitor mappedToCompetitor = getService().getCompetitorStore().getExistingCompetitorByIdAsString(competitorId);
mappedTo = mappedToCompetitor;
if (mappedToCompetitor == null) {
logger.warning("No competitor found for id " + competitorId);
return Response.status(Status.BAD_REQUEST).entity("No competitor found for id " + competitorId)
.type(MediaType.TEXT_PLAIN).build();
}
} else {
// map to mark
DomainFactory domainFactory = getService().getDomainObjectFactory().getBaseDomainFactory();
final Mark mappedToMark = domainFactory.getExistingMarkById(Helpers.tryUuidConversion(markId));
mappedTo = mappedToMark;
if (mappedToMark == null) {
logger.warning("No mark found for id " + markId);
return Response.status(Status.BAD_REQUEST).entity("No mark found for id " + markId)
.type(MediaType.TEXT_PLAIN).build();
}
}
OpenEndedDeviceMappingFinder finder = new OpenEndedDeviceMappingFinder(isRegattaLike.getRegattaLog(), mappedTo, deviceUuid);
Serializable deviceMappingEventId = finder.analyze();
@@ -505,7 +521,7 @@ public class LeaderboardsResource extends AbstractSailingServerResource {
RegattaLogCloseOpenEndedDeviceMappingEventImpl event = new RegattaLogCloseOpenEndedDeviceMappingEventImpl(now,
author, deviceMappingEventId, closingTimePoint);
isRegattaLike.getRegattaLog().add(event);
logger.fine("Successfully checked out competitor " + mappedTo.getName());
logger.fine("Successfully checked out "+((markId!=null)?"mark ":"competitor ") + mappedTo.getName());
return Response.status(Status.OK).build();
}
@@ -0,0 +1,4 @@
package com.sap.sse.common;
public interface NamedWithID extends Named, WithID {
}
@@ -12,12 +12,12 @@ import java.util.Set;
import org.apache.shiro.crypto.hash.Sha256Hash;
import com.sap.sse.common.Named;
import com.sap.sse.common.NamedWithID;
import com.sap.sse.common.WithID;
import com.sap.sse.security.shared.Account;
import com.sap.sse.security.shared.Account.AccountType;
public class User implements Named, WithID {
public class User implements NamedWithID {
private static final long serialVersionUID = 1788215575606546042L;
/**
@@ -2,10 +2,9 @@ package com.sap.sailing.racecommittee.app.domain;
import java.util.UUID;
import com.sap.sse.common.Named;
import com.sap.sse.common.WithID;
import com.sap.sse.common.NamedWithID;
public interface CoursePosition extends Named, WithID {
public interface CoursePosition extends NamedWithID {
UUID getId();
@@ -10,9 +10,8 @@ import com.sap.sailing.domain.base.CourseBase;
import com.sap.sailing.domain.base.racegroup.FilterableRace;
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
import com.sap.sailing.racecommittee.app.domain.impl.Result;
import com.sap.sse.common.Named;
import com.sap.sse.common.NamedWithID;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.WithID;
/**
* A managed race's {@link #getName()} is the race column's name.
@@ -20,7 +19,7 @@ import com.sap.sse.common.WithID;
* @author Axel Uhl (d043530)
*
*/
public interface ManagedRace extends FilterableRace, ManagedRaceIdentifier, Named, WithID {
public interface ManagedRace extends FilterableRace, ManagedRaceIdentifier, NamedWithID {
/**
* @return the identifier of the race.