From 0961eb90039847880dfbbf1d2cf09954e1e38ded Mon Sep 17 00:00:00 2001 From: Fredrik Teschke Date: Sun, 16 Mar 2014 15:40:47 +0100 Subject: [PATCH] changed structure of device identifier handlers, and added string serialization handler --- ...aceHolderDeviceIdentifierMongoHandler.java | 8 + .../PingDeviceIdentifierImpl.java | 9 - .../racelogtracking/impl/Activator.java | 154 ++--- .../impl/PingDeviceIdentifierJsonHandler.java | 8 + .../PingDeviceIdentifierMongoHandler.java | 8 + ...gDeviceIdentifierSerializationHandler.java | 9 +- ...eIdentifierStringSerializationHandler.java | 8 + .../impl/SmartphoneImeiMongoHandler.java | 8 + ...rtphoneImeiStringSerializationHandler.java | 9 + .../racelog/impl/RaceLogEventFactoryImpl.java | 524 +++++++++--------- .../racelog/tracking/DeviceIdentifier.java | 4 +- ...eIdentifierStringSerializationHandler.java | 17 + .../tracking/PlaceHolderDeviceIdentifier.java | 7 - .../tracking/SmartphoneImeiIdentifier.java | 18 - ...rDeviceIdentifierSerializationHandler.java | 7 +- .../SmartphoneImeiSerializationHandler.java | 47 +- ...eIdentifierStringSerializationHandler.java | 8 + ...rtphoneImeiIdentifierJsonDeserializer.java | 44 +- ...laceHolderDeviceIdentifierJsonHandler.java | 8 + .../impl/SmartphoneImeiJsonHandler.java | 8 + 20 files changed, 480 insertions(+), 433 deletions(-) create mode 100644 java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierStringSerializationHandler.java create mode 100644 java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneImeiStringSerializationHandler.java create mode 100644 java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifierStringSerializationHandler.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/PlaceHolderDeviceIdentifierStringSerializationHandler.java diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/PlaceHolderDeviceIdentifierMongoHandler.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/PlaceHolderDeviceIdentifierMongoHandler.java index 4d1002d77a8..5657f067858 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/PlaceHolderDeviceIdentifierMongoHandler.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/PlaceHolderDeviceIdentifierMongoHandler.java @@ -1,9 +1,17 @@ package com.sap.sailing.domain.persistence.racelog.tracking.impl; +import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.racelog.tracking.impl.PlaceHolderDeviceIdentifierSerializationHandler; public class PlaceHolderDeviceIdentifierMongoHandler extends PlaceHolderDeviceIdentifierSerializationHandler implements DeviceIdentifierMongoHandler { + @Override + public DeviceIdentifier deserialize(Object serialized, String type, String stringRepresentation) + throws TransformationException { + return deserialize((String) serialized, type, stringRepresentation); + } + } diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/PingDeviceIdentifierImpl.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/PingDeviceIdentifierImpl.java index 31d163f2547..4747a4c344b 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/PingDeviceIdentifierImpl.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/PingDeviceIdentifierImpl.java @@ -2,9 +2,6 @@ package com.sap.sailing.domain.racelogtracking; import java.util.UUID; -import com.sap.sailing.domain.base.IsManagedBySharedDomainFactory; -import com.sap.sailing.domain.base.SharedDomainFactory; - public class PingDeviceIdentifierImpl implements PingDeviceIdentifier { private static final long serialVersionUID = -4049961972156611640L; @@ -24,12 +21,6 @@ public class PingDeviceIdentifierImpl implements PingDeviceIdentifier { return TYPE; } - @Override - public IsManagedBySharedDomainFactory resolve(SharedDomainFactory domainFactory) { - //No resolving necessary, only relevant on the creating server - return this; - } - @Override public UUID getId() { return id; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/Activator.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/Activator.java index f898e7c7eca..fbe023d4e17 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/Activator.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/Activator.java @@ -1,76 +1,78 @@ -package com.sap.sailing.domain.racelogtracking.impl; - -import java.util.Dictionary; -import java.util.HashSet; -import java.util.Hashtable; -import java.util.Set; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; - -import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder; -import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; -import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier; -import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifierImpl; -import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; -import com.sap.sailing.domain.tracking.GPSFix; -import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; -import com.sap.sailing.server.gateway.deserialization.impl.GPSFixJsonDeserializer; -import com.sap.sailing.server.gateway.deserialization.impl.GPSFixMovingJsonDeserializer; -import com.sap.sailing.server.gateway.deserialization.impl.GPSFixMovingNmeaDTOJsonDeserializer; -import com.sap.sailing.server.gateway.deserialization.impl.GPSFixNmeaDTOJsonDeserializer; -import com.sap.sailing.server.gateway.serialization.JsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.GPSFixJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.GPSFixMovingJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.GPSFixMovingNmeaDTOJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.GPSFixNmeaDTOJsonSerializer; -import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; -import com.sap.sailing.server.gateway.serialization.racelog.tracking.GPSFixJsonHandler; -import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.GPSFixJsonHandlerImpl; -import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.SmartphoneImeiJsonHandler; - -public class Activator implements BundleActivator { - private static final Logger logger = Logger.getLogger(Activator.class.getName()); - - private Set> registrations = new HashSet<>(); - - private Dictionary getDict(String type) { - Dictionary properties = new Hashtable(); - properties.put(TypeBasedServiceFinder.TYPE, type); - return properties; - } - - private void registerGPSFixJsonService(BundleContext context, JsonDeserializer deserializer, - JsonSerializer serializer, String type) { - registrations.add(context.registerService(GPSFixJsonHandler.class, - new GPSFixJsonHandlerImpl(deserializer, serializer), getDict(type))); - } - - @Override - public void start(BundleContext context) throws Exception { - registrations.add(context.registerService(DeviceIdentifierMongoHandler.class, new SmartphoneImeiMongoHandler(), getDict(SmartphoneImeiIdentifier.TYPE))); - registrations.add(context.registerService(DeviceIdentifierJsonHandler.class, new SmartphoneImeiJsonHandler(), getDict(SmartphoneImeiIdentifier.TYPE))); - - registrations.add(context.registerService(DeviceIdentifierMongoHandler.class, new PingDeviceIdentifierMongoHandler(), getDict(PingDeviceIdentifierImpl.TYPE))); - registrations.add(context.registerService(DeviceIdentifierJsonHandler.class, new PingDeviceIdentifierJsonHandler(), getDict(PingDeviceIdentifierImpl.TYPE))); - - registerGPSFixJsonService(context, new GPSFixJsonDeserializer(), new GPSFixJsonSerializer(), GPSFixJsonDeserializer.TYPE); - registerGPSFixJsonService(context, new GPSFixMovingJsonDeserializer(), new GPSFixMovingJsonSerializer(), GPSFixMovingJsonDeserializer.TYPE); - registerGPSFixJsonService(context, new GPSFixNmeaDTOJsonDeserializer(), new GPSFixNmeaDTOJsonSerializer(), GPSFixNmeaDTOJsonDeserializer.TYPE); - registerGPSFixJsonService(context, new GPSFixMovingNmeaDTOJsonDeserializer(), new GPSFixMovingNmeaDTOJsonSerializer(), GPSFixMovingNmeaDTOJsonDeserializer.TYPE); - - registrations.add(context.registerService(RaceLogTrackingAdapterFactory.class, RaceLogTrackingAdapterFactoryImpl.INSTANCE, null)); - logger.log(Level.INFO, "Started "+context.getBundle().getSymbolicName()); - } - - @Override - public void stop(BundleContext context) throws Exception { - for (ServiceRegistration reg : registrations) { - reg.unregister(); - } - registrations.clear(); - } -} +package com.sap.sailing.domain.racelogtracking.impl; + +import java.util.Dictionary; +import java.util.HashSet; +import java.util.Hashtable; +import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; + +import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder; +import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifierStringSerializationHandler; +import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier; +import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifierImpl; +import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; +import com.sap.sailing.domain.tracking.GPSFix; +import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; +import com.sap.sailing.server.gateway.deserialization.impl.GPSFixJsonDeserializer; +import com.sap.sailing.server.gateway.deserialization.impl.GPSFixMovingJsonDeserializer; +import com.sap.sailing.server.gateway.deserialization.impl.GPSFixMovingNmeaDTOJsonDeserializer; +import com.sap.sailing.server.gateway.deserialization.impl.GPSFixNmeaDTOJsonDeserializer; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.GPSFixJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.GPSFixMovingJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.GPSFixMovingNmeaDTOJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.GPSFixNmeaDTOJsonSerializer; +import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; +import com.sap.sailing.server.gateway.serialization.racelog.tracking.GPSFixJsonHandler; +import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.GPSFixJsonHandlerImpl; +import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.SmartphoneImeiJsonHandler; + +public class Activator implements BundleActivator { + private static final Logger logger = Logger.getLogger(Activator.class.getName()); + + private Set> registrations = new HashSet<>(); + + private Dictionary getDict(String type) { + Dictionary properties = new Hashtable(); + properties.put(TypeBasedServiceFinder.TYPE, type); + return properties; + } + + private void registerGPSFixJsonService(BundleContext context, JsonDeserializer deserializer, + JsonSerializer serializer, String type) { + registrations.add(context.registerService(GPSFixJsonHandler.class, + new GPSFixJsonHandlerImpl(deserializer, serializer), getDict(type))); + } + + @Override + public void start(BundleContext context) throws Exception { + registrations.add(context.registerService(DeviceIdentifierMongoHandler.class, new SmartphoneImeiMongoHandler(), getDict(SmartphoneImeiIdentifier.TYPE))); + registrations.add(context.registerService(DeviceIdentifierJsonHandler.class, new SmartphoneImeiJsonHandler(), getDict(SmartphoneImeiIdentifier.TYPE))); + registrations.add(context.registerService(DeviceIdentifierStringSerializationHandler.class, new SmartphoneImeiStringSerializationHandler(), getDict(SmartphoneImeiIdentifier.TYPE))); + + registrations.add(context.registerService(DeviceIdentifierMongoHandler.class, new PingDeviceIdentifierMongoHandler(), getDict(PingDeviceIdentifierImpl.TYPE))); + registrations.add(context.registerService(DeviceIdentifierJsonHandler.class, new PingDeviceIdentifierJsonHandler(), getDict(PingDeviceIdentifierImpl.TYPE))); + + registerGPSFixJsonService(context, new GPSFixJsonDeserializer(), new GPSFixJsonSerializer(), GPSFixJsonDeserializer.TYPE); + registerGPSFixJsonService(context, new GPSFixMovingJsonDeserializer(), new GPSFixMovingJsonSerializer(), GPSFixMovingJsonDeserializer.TYPE); + registerGPSFixJsonService(context, new GPSFixNmeaDTOJsonDeserializer(), new GPSFixNmeaDTOJsonSerializer(), GPSFixNmeaDTOJsonDeserializer.TYPE); + registerGPSFixJsonService(context, new GPSFixMovingNmeaDTOJsonDeserializer(), new GPSFixMovingNmeaDTOJsonSerializer(), GPSFixMovingNmeaDTOJsonDeserializer.TYPE); + + registrations.add(context.registerService(RaceLogTrackingAdapterFactory.class, RaceLogTrackingAdapterFactoryImpl.INSTANCE, null)); + logger.log(Level.INFO, "Started "+context.getBundle().getSymbolicName()); + } + + @Override + public void stop(BundleContext context) throws Exception { + for (ServiceRegistration reg : registrations) { + reg.unregister(); + } + registrations.clear(); + } +} diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierJsonHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierJsonHandler.java index cdf6ab91259..aa1e690e85a 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierJsonHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierJsonHandler.java @@ -1,8 +1,16 @@ package com.sap.sailing.domain.racelogtracking.impl; +import com.sap.sailing.domain.common.racelog.tracking.TransformationException; +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; public class PingDeviceIdentifierJsonHandler extends PingDeviceIdentifierSerializationHandler implements DeviceIdentifierJsonHandler { + @Override + public DeviceIdentifier deserialize(Object serialized, String type, String stringRepresentation) + throws TransformationException { + return deserialize((String) serialized, type, stringRepresentation); + } + } diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierMongoHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierMongoHandler.java index 58ff499859a..2a95aa119f7 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierMongoHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierMongoHandler.java @@ -1,8 +1,16 @@ package com.sap.sailing.domain.racelogtracking.impl; +import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; public class PingDeviceIdentifierMongoHandler extends PingDeviceIdentifierSerializationHandler implements DeviceIdentifierMongoHandler { + @Override + public DeviceIdentifier deserialize(Object serialized, String type, String stringRepresentation) + throws TransformationException { + return deserialize((String) serialized, type, stringRepresentation); + } + } diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java index e7a7e3ac7cf..523aa2a40ae 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java @@ -5,24 +5,21 @@ import java.util.UUID; import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; -import com.sap.sailing.domain.racelog.tracking.DeviceIdentifierSerializationHandler; import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifier; import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifierImpl; -public class PingDeviceIdentifierSerializationHandler implements DeviceIdentifierSerializationHandler { +public class PingDeviceIdentifierSerializationHandler { private PingDeviceIdentifier castIdentifier(DeviceIdentifier identifier) throws TransformationException { if (!(identifier instanceof PingDeviceIdentifier)) throw new TransformationException("Expected a PingDeviceIdentifier, got instead: " + identifier); return (PingDeviceIdentifier) identifier; } - @Override public Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { return new Pair(castIdentifier(deviceIdentifier).getId().toString(), PingDeviceIdentifier.TYPE); } - @Override - public DeviceIdentifier deserialize(Object input, String type, String stringRep) { - return new PingDeviceIdentifierImpl(UUID.fromString((String) input)); + public DeviceIdentifier deserialize(String input, String type, String stringRep) { + return new PingDeviceIdentifierImpl(UUID.fromString(input)); } } diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierStringSerializationHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierStringSerializationHandler.java new file mode 100644 index 00000000000..b039e9c656c --- /dev/null +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierStringSerializationHandler.java @@ -0,0 +1,8 @@ +package com.sap.sailing.domain.racelogtracking.impl; + +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifierStringSerializationHandler; + +public class PingDeviceIdentifierStringSerializationHandler extends PingDeviceIdentifierSerializationHandler +implements DeviceIdentifierStringSerializationHandler { + +} diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneImeiMongoHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneImeiMongoHandler.java index 5454b55efee..a599e10a9ce 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneImeiMongoHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneImeiMongoHandler.java @@ -1,9 +1,17 @@ package com.sap.sailing.domain.racelogtracking.impl; +import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.racelog.tracking.impl.SmartphoneImeiSerializationHandler; public class SmartphoneImeiMongoHandler extends SmartphoneImeiSerializationHandler implements DeviceIdentifierMongoHandler { + @Override + public DeviceIdentifier deserialize(Object serialized, String type, String stringRepresentation) + throws TransformationException { + return deserialize((String) serialized, type, stringRepresentation); + } + } diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneImeiStringSerializationHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneImeiStringSerializationHandler.java new file mode 100644 index 00000000000..245e03c84ca --- /dev/null +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneImeiStringSerializationHandler.java @@ -0,0 +1,9 @@ +package com.sap.sailing.domain.racelogtracking.impl; + +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifierStringSerializationHandler; +import com.sap.sailing.domain.racelog.tracking.impl.SmartphoneImeiSerializationHandler; + +public class SmartphoneImeiStringSerializationHandler extends SmartphoneImeiSerializationHandler +implements DeviceIdentifierStringSerializationHandler { + +} diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java index 9c92df40432..2b9efbcdd72 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java @@ -1,262 +1,262 @@ -package com.sap.sailing.domain.racelog.impl; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.CourseBase; -import com.sap.sailing.domain.base.Mark; -import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.racelog.Flags; -import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; -import com.sap.sailing.domain.common.racelog.RacingProcedureType; -import com.sap.sailing.domain.racelog.CompetitorResults; -import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent; -import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent; -import com.sap.sailing.domain.racelog.RaceLogEventAuthor; -import com.sap.sailing.domain.racelog.RaceLogEventFactory; -import com.sap.sailing.domain.racelog.RaceLogFinishPositioningConfirmedEvent; -import com.sap.sailing.domain.racelog.RaceLogFlagEvent; -import com.sap.sailing.domain.racelog.RaceLogGateLineOpeningTimeEvent; -import com.sap.sailing.domain.racelog.RaceLogPassChangeEvent; -import com.sap.sailing.domain.racelog.RaceLogPathfinderEvent; -import com.sap.sailing.domain.racelog.RaceLogProtestStartTimeEvent; -import com.sap.sailing.domain.racelog.RaceLogRaceStatusEvent; -import com.sap.sailing.domain.racelog.RaceLogStartProcedureChangedEvent; -import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; -import com.sap.sailing.domain.racelog.RaceLogWindFixEvent; -import com.sap.sailing.domain.racelog.RevokeEvent; -import com.sap.sailing.domain.racelog.tracking.DefineMarkEvent; -import com.sap.sailing.domain.racelog.tracking.RegisterCompetitorEvent; -import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; -import com.sap.sailing.domain.racelog.tracking.DenoteForTrackingEvent; -import com.sap.sailing.domain.racelog.tracking.DeviceCompetitorMappingEvent; -import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; -import com.sap.sailing.domain.racelog.tracking.DeviceMarkMappingEvent; -import com.sap.sailing.domain.racelog.tracking.events.DefineMarkEventImpl; -import com.sap.sailing.domain.racelog.tracking.events.RegisterCompetitorEventImpl; -import com.sap.sailing.domain.racelog.tracking.events.StartTrackingEventImpl; -import com.sap.sailing.domain.racelog.tracking.events.DenoteForTrackingEventImpl; -import com.sap.sailing.domain.racelog.tracking.events.DeviceCompetitorMappingEventImpl; -import com.sap.sailing.domain.racelog.tracking.events.DeviceMarkMappingEventImpl; -import com.sap.sailing.domain.racelog.tracking.events.RevokeEventImpl; -import com.sap.sailing.domain.tracking.Wind; - -public class RaceLogEventFactoryImpl implements RaceLogEventFactory { - - @Override - public RaceLogFlagEvent createFlagEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, Serializable id, - List involvedBoats, int passId, Flags upperFlag, Flags lowerFlag, boolean isDisplayed) { - return new RaceLogFlagEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, involvedBoats, passId, - upperFlag, lowerFlag, isDisplayed); - } - - @Override - public RaceLogFlagEvent createFlagEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Flags upperFlag, - Flags lowerFlag, boolean isDisplayed) { - return createFlagEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, upperFlag, - lowerFlag, isDisplayed); - } - - @Override - public RaceLogStartTimeEvent createStartTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - Serializable id, List involvedBoats, int passId, TimePoint startTime) { - return new RaceLogStartTimeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, involvedBoats, - passId, startTime); - } - - @Override - public RaceLogStartTimeEvent createStartTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, TimePoint startTime) { - return createStartTimeEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, startTime); - } - - @Override - public RaceLogRaceStatusEvent createRaceStatusEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - Serializable id, List competitors, int passId, RaceLogRaceStatus nextStatus) { - return new RaceLogRaceStatusEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, - passId, nextStatus); - } - - @Override - public RaceLogRaceStatusEvent createRaceStatusEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, RaceLogRaceStatus nextStatus) { - return createRaceStatusEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, nextStatus); - } - - @Override - public RaceLogPassChangeEvent createPassChangeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - Serializable id, List competitors, int passId) { - return new RaceLogPassChangeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, passId); - } - - @Override - public RaceLogPassChangeEvent createPassChangeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId) { - return createPassChangeEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId); - } - - @Override - public RaceLogCourseAreaChangedEvent createCourseAreaChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - Serializable id, List competitors, int passId, Serializable courseAreaId) { - return new RaceLogCourseAreaChangeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, - passId, courseAreaId); - } - - @Override - public RaceLogCourseAreaChangedEvent createCourseAreaChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - int passId, Serializable courseAreaId) { - return createCourseAreaChangedEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), - passId, courseAreaId); - } - - @Override - public RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - Serializable id, List competitors, int passId, CourseBase courseData) { - return new RaceLogCourseDesignChangedEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, - passId, courseData); - } - - @Override - public RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - int passId, CourseBase courseData) { - return createCourseDesignChangedEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), - passId, courseData); - } - - @Override - public RaceLogFinishPositioningListChangedEventImpl createFinishPositioningListChangedEvent(TimePoint logicalTimePoint, - RaceLogEventAuthor author, Serializable id, List competitors, - int passId, CompetitorResults positionedCompetitors) { - return new RaceLogFinishPositioningListChangedEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, - id, competitors, passId, positionedCompetitors); - } - - @Override - public RaceLogFinishPositioningListChangedEventImpl createFinishPositioningListChangedEvent(TimePoint logicalTimePoint, - RaceLogEventAuthor author, int passId, CompetitorResults positionedCompetitors) { - return createFinishPositioningListChangedEvent(logicalTimePoint, author, UUID.randomUUID(), - new ArrayList(), passId, positionedCompetitors); - } - - @Override - public RaceLogFinishPositioningConfirmedEvent createFinishPositioningConfirmedEvent(TimePoint logicalTimePoint, - RaceLogEventAuthor author, Serializable id, List competitors, int passId, CompetitorResults positionedCompetitors) { - return new RaceLogFinishPositioningConfirmedEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, - competitors, passId, positionedCompetitors); - } - - @Override - public RaceLogFinishPositioningConfirmedEvent createFinishPositioningConfirmedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - int passId, CompetitorResults positionedCompetitors) { - return createFinishPositioningConfirmedEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, positionedCompetitors); - } - - @Override - public RaceLogPathfinderEvent createPathfinderEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - Serializable id, List competitors, int passId, String pathfinderId) { - return new RaceLogPathfinderEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, - passId, pathfinderId); - } - - @Override - public RaceLogPathfinderEvent createPathfinderEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, String pathfinderId) { - return createPathfinderEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, pathfinderId); - } - - @Override - public RaceLogGateLineOpeningTimeEvent createGateLineOpeningTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - Serializable id, List competitors, int passId, Long gateLaunchStopTime, Long golfDownTime) { - return new RaceLogGateLineOpeningTimeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, - passId, gateLaunchStopTime, golfDownTime); - } - - @Override - public RaceLogGateLineOpeningTimeEvent createGateLineOpeningTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - int passId, Long gateLaunchStopTime, Long golfDownTime) { - return createGateLineOpeningTimeEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), - passId, gateLaunchStopTime, golfDownTime); - } - - @Override - public RaceLogStartProcedureChangedEvent createStartProcedureChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - Serializable id, List competitors, int passId, RacingProcedureType type) { - return new RaceLogStartProcedureChangedEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, - competitors, passId, type); - } - - @Override - public RaceLogStartProcedureChangedEvent createStartProcedureChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - int passId, RacingProcedureType type) { - return createStartProcedureChangedEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, type); - } - - @Override - public RaceLogProtestStartTimeEvent createProtestStartTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - Serializable id, List competitors, int passId, TimePoint protestStartTime) { - return new RaceLogProtestStartTimeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, - competitors, passId, protestStartTime); - } - - @Override - public RaceLogProtestStartTimeEvent createProtestStartTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - int passId, TimePoint protestStartTime) { - return createProtestStartTimeEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), - passId, protestStartTime); - } - - @Override - public RaceLogWindFixEvent createWindFixEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Wind wind) { - return createWindFixEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, wind); - } - - @Override - public RaceLogWindFixEvent createWindFixEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, Serializable id, - List competitors, int passId, Wind wind) { - return new RaceLogWindFixEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, passId, wind); - } - - @Override - public DeviceCompetitorMappingEvent createDeviceCompetitorMappingEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - DeviceIdentifier device, Competitor mappedTo, int passId, TimePoint from, TimePoint to) { - return new DeviceCompetitorMappingEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), - passId, mappedTo, device, from, to); - } - - @Override - public DeviceMarkMappingEvent createDeviceMarkMappingEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - DeviceIdentifier device, Mark mappedTo, int passId, TimePoint from, TimePoint to) { - return new DeviceMarkMappingEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), - passId, mappedTo, device, from, to); - } - - @Override - public DenoteForTrackingEvent createDenoteForTrackingEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, - String raceName, BoatClass boatClass) { - return new DenoteForTrackingEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId, raceName, boatClass); - } - - @Override - public StartTrackingEvent createStartTrackingEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId) { - return new StartTrackingEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId); - } - - @Override - public RevokeEvent createRevokeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Serializable revokedEventId) { - return new RevokeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId, revokedEventId); - } - - @Override - public RegisterCompetitorEvent createRegisterCompetitorEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - int passId, Competitor competitor) { - return new RegisterCompetitorEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId, competitor); - } - - @Override - public DefineMarkEvent createDefineMarkEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, - int passId, Mark mark) { - return new DefineMarkEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId, mark); - } - -} +package com.sap.sailing.domain.racelog.impl; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import com.sap.sailing.domain.base.BoatClass; +import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.base.CourseBase; +import com.sap.sailing.domain.base.Mark; +import com.sap.sailing.domain.common.TimePoint; +import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; +import com.sap.sailing.domain.common.racelog.Flags; +import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; +import com.sap.sailing.domain.common.racelog.RacingProcedureType; +import com.sap.sailing.domain.racelog.CompetitorResults; +import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent; +import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent; +import com.sap.sailing.domain.racelog.RaceLogEventAuthor; +import com.sap.sailing.domain.racelog.RaceLogEventFactory; +import com.sap.sailing.domain.racelog.RaceLogFinishPositioningConfirmedEvent; +import com.sap.sailing.domain.racelog.RaceLogFlagEvent; +import com.sap.sailing.domain.racelog.RaceLogGateLineOpeningTimeEvent; +import com.sap.sailing.domain.racelog.RaceLogPassChangeEvent; +import com.sap.sailing.domain.racelog.RaceLogPathfinderEvent; +import com.sap.sailing.domain.racelog.RaceLogProtestStartTimeEvent; +import com.sap.sailing.domain.racelog.RaceLogRaceStatusEvent; +import com.sap.sailing.domain.racelog.RaceLogStartProcedureChangedEvent; +import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; +import com.sap.sailing.domain.racelog.RaceLogWindFixEvent; +import com.sap.sailing.domain.racelog.RevokeEvent; +import com.sap.sailing.domain.racelog.tracking.DefineMarkEvent; +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; +import com.sap.sailing.domain.racelog.tracking.RegisterCompetitorEvent; +import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; +import com.sap.sailing.domain.racelog.tracking.DenoteForTrackingEvent; +import com.sap.sailing.domain.racelog.tracking.DeviceCompetitorMappingEvent; +import com.sap.sailing.domain.racelog.tracking.DeviceMarkMappingEvent; +import com.sap.sailing.domain.racelog.tracking.events.DefineMarkEventImpl; +import com.sap.sailing.domain.racelog.tracking.events.RegisterCompetitorEventImpl; +import com.sap.sailing.domain.racelog.tracking.events.StartTrackingEventImpl; +import com.sap.sailing.domain.racelog.tracking.events.DenoteForTrackingEventImpl; +import com.sap.sailing.domain.racelog.tracking.events.DeviceCompetitorMappingEventImpl; +import com.sap.sailing.domain.racelog.tracking.events.DeviceMarkMappingEventImpl; +import com.sap.sailing.domain.racelog.tracking.events.RevokeEventImpl; +import com.sap.sailing.domain.tracking.Wind; + +public class RaceLogEventFactoryImpl implements RaceLogEventFactory { + + @Override + public RaceLogFlagEvent createFlagEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, Serializable id, + List involvedBoats, int passId, Flags upperFlag, Flags lowerFlag, boolean isDisplayed) { + return new RaceLogFlagEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, involvedBoats, passId, + upperFlag, lowerFlag, isDisplayed); + } + + @Override + public RaceLogFlagEvent createFlagEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Flags upperFlag, + Flags lowerFlag, boolean isDisplayed) { + return createFlagEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, upperFlag, + lowerFlag, isDisplayed); + } + + @Override + public RaceLogStartTimeEvent createStartTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + Serializable id, List involvedBoats, int passId, TimePoint startTime) { + return new RaceLogStartTimeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, involvedBoats, + passId, startTime); + } + + @Override + public RaceLogStartTimeEvent createStartTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, TimePoint startTime) { + return createStartTimeEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, startTime); + } + + @Override + public RaceLogRaceStatusEvent createRaceStatusEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + Serializable id, List competitors, int passId, RaceLogRaceStatus nextStatus) { + return new RaceLogRaceStatusEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, + passId, nextStatus); + } + + @Override + public RaceLogRaceStatusEvent createRaceStatusEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, RaceLogRaceStatus nextStatus) { + return createRaceStatusEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, nextStatus); + } + + @Override + public RaceLogPassChangeEvent createPassChangeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + Serializable id, List competitors, int passId) { + return new RaceLogPassChangeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, passId); + } + + @Override + public RaceLogPassChangeEvent createPassChangeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId) { + return createPassChangeEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId); + } + + @Override + public RaceLogCourseAreaChangedEvent createCourseAreaChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + Serializable id, List competitors, int passId, Serializable courseAreaId) { + return new RaceLogCourseAreaChangeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, + passId, courseAreaId); + } + + @Override + public RaceLogCourseAreaChangedEvent createCourseAreaChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + int passId, Serializable courseAreaId) { + return createCourseAreaChangedEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), + passId, courseAreaId); + } + + @Override + public RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + Serializable id, List competitors, int passId, CourseBase courseData) { + return new RaceLogCourseDesignChangedEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, + passId, courseData); + } + + @Override + public RaceLogCourseDesignChangedEvent createCourseDesignChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + int passId, CourseBase courseData) { + return createCourseDesignChangedEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), + passId, courseData); + } + + @Override + public RaceLogFinishPositioningListChangedEventImpl createFinishPositioningListChangedEvent(TimePoint logicalTimePoint, + RaceLogEventAuthor author, Serializable id, List competitors, + int passId, CompetitorResults positionedCompetitors) { + return new RaceLogFinishPositioningListChangedEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, + id, competitors, passId, positionedCompetitors); + } + + @Override + public RaceLogFinishPositioningListChangedEventImpl createFinishPositioningListChangedEvent(TimePoint logicalTimePoint, + RaceLogEventAuthor author, int passId, CompetitorResults positionedCompetitors) { + return createFinishPositioningListChangedEvent(logicalTimePoint, author, UUID.randomUUID(), + new ArrayList(), passId, positionedCompetitors); + } + + @Override + public RaceLogFinishPositioningConfirmedEvent createFinishPositioningConfirmedEvent(TimePoint logicalTimePoint, + RaceLogEventAuthor author, Serializable id, List competitors, int passId, CompetitorResults positionedCompetitors) { + return new RaceLogFinishPositioningConfirmedEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, + competitors, passId, positionedCompetitors); + } + + @Override + public RaceLogFinishPositioningConfirmedEvent createFinishPositioningConfirmedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + int passId, CompetitorResults positionedCompetitors) { + return createFinishPositioningConfirmedEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, positionedCompetitors); + } + + @Override + public RaceLogPathfinderEvent createPathfinderEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + Serializable id, List competitors, int passId, String pathfinderId) { + return new RaceLogPathfinderEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, + passId, pathfinderId); + } + + @Override + public RaceLogPathfinderEvent createPathfinderEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, String pathfinderId) { + return createPathfinderEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, pathfinderId); + } + + @Override + public RaceLogGateLineOpeningTimeEvent createGateLineOpeningTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + Serializable id, List competitors, int passId, Long gateLaunchStopTime, Long golfDownTime) { + return new RaceLogGateLineOpeningTimeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, + passId, gateLaunchStopTime, golfDownTime); + } + + @Override + public RaceLogGateLineOpeningTimeEvent createGateLineOpeningTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + int passId, Long gateLaunchStopTime, Long golfDownTime) { + return createGateLineOpeningTimeEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), + passId, gateLaunchStopTime, golfDownTime); + } + + @Override + public RaceLogStartProcedureChangedEvent createStartProcedureChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + Serializable id, List competitors, int passId, RacingProcedureType type) { + return new RaceLogStartProcedureChangedEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, + competitors, passId, type); + } + + @Override + public RaceLogStartProcedureChangedEvent createStartProcedureChangedEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + int passId, RacingProcedureType type) { + return createStartProcedureChangedEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, type); + } + + @Override + public RaceLogProtestStartTimeEvent createProtestStartTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + Serializable id, List competitors, int passId, TimePoint protestStartTime) { + return new RaceLogProtestStartTimeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, + competitors, passId, protestStartTime); + } + + @Override + public RaceLogProtestStartTimeEvent createProtestStartTimeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + int passId, TimePoint protestStartTime) { + return createProtestStartTimeEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), + passId, protestStartTime); + } + + @Override + public RaceLogWindFixEvent createWindFixEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Wind wind) { + return createWindFixEvent(logicalTimePoint, author, UUID.randomUUID(), new ArrayList(), passId, wind); + } + + @Override + public RaceLogWindFixEvent createWindFixEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, Serializable id, + List competitors, int passId, Wind wind) { + return new RaceLogWindFixEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, id, competitors, passId, wind); + } + + @Override + public DeviceCompetitorMappingEvent createDeviceCompetitorMappingEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + DeviceIdentifier device, Competitor mappedTo, int passId, TimePoint from, TimePoint to) { + return new DeviceCompetitorMappingEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), + passId, mappedTo, device, from, to); + } + + @Override + public DeviceMarkMappingEvent createDeviceMarkMappingEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + DeviceIdentifier device, Mark mappedTo, int passId, TimePoint from, TimePoint to) { + return new DeviceMarkMappingEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), + passId, mappedTo, device, from, to); + } + + @Override + public DenoteForTrackingEvent createDenoteForTrackingEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, + String raceName, BoatClass boatClass) { + return new DenoteForTrackingEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId, raceName, boatClass); + } + + @Override + public StartTrackingEvent createStartTrackingEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId) { + return new StartTrackingEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId); + } + + @Override + public RevokeEvent createRevokeEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, int passId, Serializable revokedEventId) { + return new RevokeEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId, revokedEventId); + } + + @Override + public RegisterCompetitorEvent createRegisterCompetitorEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + int passId, Competitor competitor) { + return new RegisterCompetitorEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId, competitor); + } + + @Override + public DefineMarkEvent createDefineMarkEvent(TimePoint logicalTimePoint, RaceLogEventAuthor author, + int passId, Mark mark) { + return new DefineMarkEventImpl(MillisecondsTimePoint.now(), author, logicalTimePoint, UUID.randomUUID(), passId, mark); + } + +} diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifier.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifier.java index 91eb0a7e90a..b49527e5db2 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifier.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifier.java @@ -2,15 +2,13 @@ package com.sap.sailing.domain.racelog.tracking; import java.io.Serializable; -import com.sap.sailing.domain.base.IsManagedBySharedDomainFactory; - /** * Identifies any kind of tracking device. Should be implemented accordingly for different tracking * adapters, e.g. for smartphones, Igtimi trackers etc. * @author Fredrik Teschke * */ -public interface DeviceIdentifier extends IsManagedBySharedDomainFactory, Serializable { +public interface DeviceIdentifier extends Serializable { /** * The returned {@link String} is used to look up corresponding services for serialization * and persistence. diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifierStringSerializationHandler.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifierStringSerializationHandler.java new file mode 100644 index 00000000000..ab9b33eeebf --- /dev/null +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifierStringSerializationHandler.java @@ -0,0 +1,17 @@ +package com.sap.sailing.domain.racelog.tracking; + + +/** + * Handle serialization to a {@code String}, for passing the identifier to the GWT frontend. + * Implementing this is not mandatory - if it were, there would be no need to have separate Mongo, JSON and other + * serialiazation handlers. + * + * This way, at least any device identifier that can be serialized to a string can also be exposed to the GWT frontend + * (can both be displayed and especially be created there!). + * + * @author Fredrik Teschke + * + */ +public interface DeviceIdentifierStringSerializationHandler extends DeviceIdentifierSerializationHandler { + +} diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/PlaceHolderDeviceIdentifier.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/PlaceHolderDeviceIdentifier.java index 17c40a43310..24b217945d3 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/PlaceHolderDeviceIdentifier.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/PlaceHolderDeviceIdentifier.java @@ -1,7 +1,5 @@ package com.sap.sailing.domain.racelog.tracking; -import com.sap.sailing.domain.base.IsManagedBySharedDomainFactory; -import com.sap.sailing.domain.base.SharedDomainFactory; /** @@ -25,11 +23,6 @@ public class PlaceHolderDeviceIdentifier implements DeviceIdentifier { this.stringRepresentation = stringRepresentation; } - @Override - public IsManagedBySharedDomainFactory resolve(SharedDomainFactory domainFactory) { - return this; - } - @Override public String getIdentifierType() { return type; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneImeiIdentifier.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneImeiIdentifier.java index e07ebcceb14..f43eb9b3dc5 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneImeiIdentifier.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneImeiIdentifier.java @@ -1,35 +1,17 @@ package com.sap.sailing.domain.racelog.tracking; -import java.util.HashMap; -import java.util.Map; - -import com.sap.sailing.domain.base.SharedDomainFactory; public class SmartphoneImeiIdentifier implements DeviceIdentifier { private static final long serialVersionUID = -1830014229310181702L; public static final String TYPE = "smartphoneImei"; - private static final Map cache = new HashMap(); - private final String imei; public SmartphoneImeiIdentifier(String imei) { this.imei = imei; } - @Override - public DeviceIdentifier resolve(SharedDomainFactory domainFactory) { - // ignore the domainFactory - - DeviceIdentifier result = cache.get(imei); - if (result == null) { - cache.put(imei, this); - return this; - } - return result; - } - public String getImei() { return imei; } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java index 66f3e95511c..c9b15500fb1 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java @@ -3,7 +3,6 @@ package com.sap.sailing.domain.racelog.tracking.impl; import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; -import com.sap.sailing.domain.racelog.tracking.DeviceIdentifierSerializationHandler; import com.sap.sailing.domain.racelog.tracking.PlaceHolderDeviceIdentifier; /** @@ -16,17 +15,15 @@ import com.sap.sailing.domain.racelog.tracking.PlaceHolderDeviceIdentifier; * @author Fredrik Teschke * */ -public class PlaceHolderDeviceIdentifierSerializationHandler implements DeviceIdentifierSerializationHandler { +public class PlaceHolderDeviceIdentifierSerializationHandler { - @Override - public DeviceIdentifier deserialize(Object object, String type, String stringRepresentation) throws TransformationException { + public DeviceIdentifier deserialize(String object, String type, String stringRepresentation) throws TransformationException { if (type.equals(PlaceHolderDeviceIdentifier.TYPE)) { type = (String) object; } return new PlaceHolderDeviceIdentifier(type, stringRepresentation); } - @Override public Pair serialize(DeviceIdentifier object) throws TransformationException { return new Pair(object.getIdentifierType(), PlaceHolderDeviceIdentifier.TYPE); } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/SmartphoneImeiSerializationHandler.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/SmartphoneImeiSerializationHandler.java index ae4078f78eb..adc17aa40ba 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/SmartphoneImeiSerializationHandler.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/SmartphoneImeiSerializationHandler.java @@ -1,25 +1,22 @@ -package com.sap.sailing.domain.racelog.tracking.impl; - -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; -import com.sap.sailing.domain.racelog.tracking.DeviceIdentifierSerializationHandler; -import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier; - -public class SmartphoneImeiSerializationHandler implements DeviceIdentifierSerializationHandler { - private SmartphoneImeiIdentifier castIdentifier(DeviceIdentifier identifier) throws TransformationException { - if (!(identifier instanceof SmartphoneImeiIdentifier)) - throw new TransformationException("Expected a SmartphoneImeiIdentifier, got instead: " + identifier); - return (SmartphoneImeiIdentifier) identifier; - } - - @Override - public Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { - return new Pair(castIdentifier(deviceIdentifier).getImei(), SmartphoneImeiIdentifier.TYPE); - } - - @Override - public DeviceIdentifier deserialize(Object input, String type, String stringRep) { - return new SmartphoneImeiIdentifier((String) input); - } -} +package com.sap.sailing.domain.racelog.tracking.impl; + +import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sailing.domain.common.racelog.tracking.TransformationException; +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; +import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier; + +public class SmartphoneImeiSerializationHandler { + private SmartphoneImeiIdentifier castIdentifier(DeviceIdentifier identifier) throws TransformationException { + if (!(identifier instanceof SmartphoneImeiIdentifier)) + throw new TransformationException("Expected a SmartphoneImeiIdentifier, got instead: " + identifier); + return (SmartphoneImeiIdentifier) identifier; + } + + public Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { + return new Pair(castIdentifier(deviceIdentifier).getImei(), SmartphoneImeiIdentifier.TYPE); + } + + public DeviceIdentifier deserialize(String input, String type, String stringRep) { + return new SmartphoneImeiIdentifier(input); + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/PlaceHolderDeviceIdentifierStringSerializationHandler.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/PlaceHolderDeviceIdentifierStringSerializationHandler.java new file mode 100644 index 00000000000..dd95376bcfe --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/PlaceHolderDeviceIdentifierStringSerializationHandler.java @@ -0,0 +1,8 @@ +package com.sap.sailing.gwt.ui.server; + +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifierStringSerializationHandler; +import com.sap.sailing.domain.racelog.tracking.impl.PlaceHolderDeviceIdentifierSerializationHandler; + +public class PlaceHolderDeviceIdentifierStringSerializationHandler extends PlaceHolderDeviceIdentifierSerializationHandler implements + DeviceIdentifierStringSerializationHandler { +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/SmartphoneImeiIdentifierJsonDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/SmartphoneImeiIdentifierJsonDeserializer.java index 6cd2b428aba..66ca770eb60 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/SmartphoneImeiIdentifierJsonDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/SmartphoneImeiIdentifierJsonDeserializer.java @@ -1,23 +1,23 @@ -package com.sap.sailing.server.gateway.deserialization.impl; - -import org.json.simple.JSONObject; - -import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier; -import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; -import com.sap.sailing.server.gateway.deserialization.TypeBasedJsonDeserializer; - -public class SmartphoneImeiIdentifierJsonDeserializer extends TypeBasedJsonDeserializer { - public static final String FIELD_IMEI = "imei"; - - @Override - protected String getType() { - return SmartphoneImeiIdentifier.TYPE; - } - - @Override - protected SmartphoneImeiIdentifier deserializeAfterCheckingType(JSONObject object) - throws JsonDeserializationException { - String imei = (String) object.get(FIELD_IMEI); - return (SmartphoneImeiIdentifier) new SmartphoneImeiIdentifier(imei).resolve(null); - } +package com.sap.sailing.server.gateway.deserialization.impl; + +import org.json.simple.JSONObject; + +import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier; +import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; +import com.sap.sailing.server.gateway.deserialization.TypeBasedJsonDeserializer; + +public class SmartphoneImeiIdentifierJsonDeserializer extends TypeBasedJsonDeserializer { + public static final String FIELD_IMEI = "imei"; + + @Override + protected String getType() { + return SmartphoneImeiIdentifier.TYPE; + } + + @Override + protected SmartphoneImeiIdentifier deserializeAfterCheckingType(JSONObject object) + throws JsonDeserializationException { + String imei = (String) object.get(FIELD_IMEI); + return (SmartphoneImeiIdentifier) new SmartphoneImeiIdentifier(imei); + } } diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/PlaceHolderDeviceIdentifierJsonHandler.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/PlaceHolderDeviceIdentifierJsonHandler.java index 78b708debc6..30e1f2c7123 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/PlaceHolderDeviceIdentifierJsonHandler.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/PlaceHolderDeviceIdentifierJsonHandler.java @@ -1,9 +1,17 @@ package com.sap.sailing.server.gateway.serialization.racelog.tracking.impl; +import com.sap.sailing.domain.common.racelog.tracking.TransformationException; +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.racelog.tracking.impl.PlaceHolderDeviceIdentifierSerializationHandler; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; public class PlaceHolderDeviceIdentifierJsonHandler extends PlaceHolderDeviceIdentifierSerializationHandler implements DeviceIdentifierJsonHandler { + @Override + public DeviceIdentifier deserialize(Object serialized, String type, String stringRepresentation) + throws TransformationException { + return deserialize((String) serialized, type, stringRepresentation); + } + } diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/SmartphoneImeiJsonHandler.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/SmartphoneImeiJsonHandler.java index 6898b897b2f..ce1a011554f 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/SmartphoneImeiJsonHandler.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/SmartphoneImeiJsonHandler.java @@ -1,9 +1,17 @@ package com.sap.sailing.server.gateway.serialization.racelog.tracking.impl; +import com.sap.sailing.domain.common.racelog.tracking.TransformationException; +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.racelog.tracking.impl.SmartphoneImeiSerializationHandler; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; public class SmartphoneImeiJsonHandler extends SmartphoneImeiSerializationHandler implements DeviceIdentifierJsonHandler { + @Override + public DeviceIdentifier deserialize(Object serialized, String type, String stringRepresentation) + throws TransformationException { + return deserialize((String) serialized, type, stringRepresentation); + } + }