introduced smartphone UUID identifier as standard, imei identifier for testing only

This commit is contained in:
Fredrik Teschke
2014-03-28 11:42:42 +01:00
parent cf2fe722b9
commit 92aef41f0c
36 changed files with 202 additions and 70 deletions
@@ -1,9 +1,7 @@
package com.sap.sailing.domain.racelog.tracking.test.mock;
import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier;
import com.sap.sailing.server.gateway.deserialization.impl.DeviceAndSessionIdentifierWithGPSFixesDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.DeviceIdentifierJsonDeserializer;
import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.SmartphoneImeiJsonHandler;
public class MockDeviceAndSessioinIdentifierWithGPSFixesDeserializer extends
DeviceAndSessionIdentifierWithGPSFixesDeserializer {
@@ -2,7 +2,6 @@ package com.sap.sailing.domain.racelog.tracking.test.mock;
import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder;
import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinderFactory;
import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier;
/**
* A simplified implementation of the {@link TypeBasedServiceFinder} interface that, when the device type
@@ -1,9 +1,7 @@
package com.sap.sailing.domain.racelog.tracking.test.mock;
import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder;
import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier;
import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler;
import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.SmartphoneImeiJsonHandler;
/**
* A simplified implementation of the {@link TypeBasedServiceFinder} interface that, when the device type
@@ -2,8 +2,6 @@ package com.sap.sailing.domain.racelog.tracking.test.mock;
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.impl.SmartphoneImeiMongoHandler;
/**
* A simplified implementation of the {@link TypeBasedServiceFinder} interface that, when the device type
@@ -7,7 +7,6 @@ import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder;
import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinderFactory;
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
import com.sap.sailing.domain.persistence.racelog.tracking.GPSFixMongoHandler;
import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier;
import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler;
import com.sap.sailing.server.gateway.serialization.racelog.tracking.GPSFixJsonHandler;
@@ -0,0 +1,48 @@
package com.sap.sailing.domain.racelog.tracking.test.mock;
import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier;
public class SmartphoneImeiIdentifier implements DeviceIdentifier {
private static final long serialVersionUID = -1830014229310181702L;
public static final String TYPE = "smartphoneImei";
private final String imei;
public SmartphoneImeiIdentifier(String imei) {
this.imei = imei;
}
public String getImei() {
return imei;
}
@Override
public String getIdentifierType() {
return TYPE;
}
@Override
public String toString() {
return "IMEI " + imei;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof SmartphoneImeiIdentifier) {
return ((SmartphoneImeiIdentifier) obj).imei.equals(imei);
}
return false;
}
@Override
public int hashCode() {
return imei.hashCode();
}
@Override
public String getStringRepresentation() {
return imei;
}
}
@@ -0,0 +1,16 @@
package com.sap.sailing.domain.racelog.tracking.test.mock;
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 SmartphoneImeiJsonHandler extends SmartphoneImeiSerializationHandler
implements DeviceIdentifierJsonHandler {
@Override
public DeviceIdentifier deserialize(Object serialized, String type, String stringRepresentation)
throws TransformationException {
return deserialize((String) serialized, type, stringRepresentation);
}
}
@@ -0,0 +1,16 @@
package com.sap.sailing.domain.racelog.tracking.test.mock;
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 SmartphoneImeiMongoHandler extends SmartphoneImeiSerializationHandler
implements DeviceIdentifierMongoHandler {
@Override
public DeviceIdentifier deserialize(Object serialized, String type, String stringRepresentation)
throws TransformationException {
return deserialize((String) serialized, type, stringRepresentation);
}
}
@@ -0,0 +1,21 @@
package com.sap.sailing.domain.racelog.tracking.test.mock;
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;
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<String, String> serialize(DeviceIdentifier deviceIdentifier) throws TransformationException {
return new Pair<String, String>(castIdentifier(deviceIdentifier).getImei(), SmartphoneImeiIdentifier.TYPE);
}
public DeviceIdentifier deserialize(String input, String type, String stringRep) {
return new SmartphoneImeiIdentifier(input);
}
}
@@ -0,0 +1,8 @@
package com.sap.sailing.domain.racelog.tracking.test.mock;
import com.sap.sailing.domain.racelog.tracking.DeviceIdentifierStringSerializationHandler;
public class SmartphoneImeiStringSerializationHandler extends SmartphoneImeiSerializationHandler
implements DeviceIdentifierStringSerializationHandler {
}