mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-15 10:18:45 +00:00
bug6070: uncompilable interims commit
This commit is contained in:
+4
-4
@@ -14,7 +14,7 @@ import com.sap.sailing.domain.tractracadapter.DomainFactory;
|
||||
import com.sap.sailing.domain.tractracadapter.LoadingQueueDoneCallBack;
|
||||
import com.sap.sailing.domain.tractracadapter.Receiver;
|
||||
import com.tractrac.model.lib.api.data.IPosition;
|
||||
import com.tractrac.model.lib.api.map.IMapItem;
|
||||
import com.tractrac.model.lib.api.map.IPositionedItem;
|
||||
import com.tractrac.subscription.lib.api.map.IPositionedItemPositionListener;
|
||||
|
||||
public class PositionConversionTest extends AbstractTracTracLiveTest {
|
||||
@@ -31,7 +31,7 @@ public class PositionConversionTest extends AbstractTracTracLiveTest {
|
||||
|
||||
@Test
|
||||
public void testReceiptOfControlPointPosition() {
|
||||
final IMapItem[] firstTracked = new IMapItem[1];
|
||||
final IPositionedItem[] firstTracked = new IPositionedItem[1];
|
||||
final IPosition[] firstData = new IPosition[1];
|
||||
final Object semaphor = new Object();
|
||||
|
||||
@@ -58,11 +58,11 @@ public class PositionConversionTest extends AbstractTracTracLiveTest {
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
getRaceSubscriber().subscribePositionedItemsPositions(new IPositionedItemPositionListener() {
|
||||
getRaceSubscriber().subscribePositionedItemPositions(new IPositionedItemPositionListener() {
|
||||
private boolean first = true;
|
||||
|
||||
@Override
|
||||
public void gotControlPointPosition(IMapItem control, IPosition position, int controlPointNumber) {
|
||||
public void gotPositionedItemPosition(IPositionedItem control, IPosition position) {
|
||||
if (first) {
|
||||
synchronized (semaphor) {
|
||||
firstTracked[0] = control;
|
||||
|
||||
+1
-1
@@ -228,7 +228,7 @@ public interface DomainFactory {
|
||||
* The record may be for a single mark or a gate. If for a gate, the {@link ControlPointPositionData#getIndex()
|
||||
* index} is used to determine which of its marks is affected.
|
||||
*/
|
||||
Mark getMark(TracTracControlPoint controlPoint, int zeroBasedMarkIndex);
|
||||
Mark getMark(IPositionedItem positionedItem);
|
||||
|
||||
com.sap.sailing.domain.base.ControlPoint getOrCreateControlPoint(TracTracControlPoint controlPoint);
|
||||
|
||||
|
||||
+2
-1
@@ -10,6 +10,7 @@ import com.sap.sailing.domain.tractracadapter.impl.RaceCourseReceiver;
|
||||
import com.sap.sse.common.Color;
|
||||
import com.sap.sse.common.Named;
|
||||
import com.tractrac.model.lib.api.event.IRaceCompetitor;
|
||||
import com.tractrac.model.lib.api.map.IPositionedItem;
|
||||
|
||||
/**
|
||||
* TracTrac objects can be augmented by what TracTrac calls a "DataSheet." These optional data sheets can provide
|
||||
@@ -46,7 +47,7 @@ public interface MetadataParser {
|
||||
/**
|
||||
* Returns as many metadata objects as there are marks in the control point (two for a gate, one otherwise)
|
||||
*/
|
||||
Iterable<ControlPointMetaData> parseControlPointMetadata(TracTracControlPoint controlPoint);
|
||||
ControlPointMetaData parseControlPointMetadata(IPositionedItem positionedItem);
|
||||
|
||||
/**
|
||||
* Parses the race metadata for sideline information
|
||||
|
||||
+7
-3
@@ -4,13 +4,12 @@ import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.tractracadapter.TracTracControlPoint;
|
||||
import com.tractrac.model.lib.api.map.IMapItem;
|
||||
import com.tractrac.model.lib.api.map.IPositionedItem;
|
||||
|
||||
public class ControlPointAdapter extends AbstractWithID implements TracTracControlPoint {
|
||||
private static final long serialVersionUID = 1012632574166553433L;
|
||||
private final IPositionedItem controlPoint;
|
||||
private final IMapItem controlPoint;
|
||||
|
||||
public ControlPointAdapter(IPositionedItem controlPoint) {
|
||||
public ControlPointAdapter(IMapItem controlPoint) {
|
||||
super();
|
||||
this.controlPoint = controlPoint;
|
||||
}
|
||||
@@ -55,4 +54,9 @@ public class ControlPointAdapter extends AbstractWithID implements TracTracContr
|
||||
public UUID getSecondMarkId() {
|
||||
return controlPoint.getPositionedItems().get(1).getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getHasTwoPoints() {
|
||||
return controlPoint.getPositionedItems().size() == 2;
|
||||
}
|
||||
}
|
||||
|
||||
+41
-10
@@ -116,6 +116,7 @@ import com.tractrac.model.lib.api.event.IEvent;
|
||||
import com.tractrac.model.lib.api.event.IRace;
|
||||
import com.tractrac.model.lib.api.event.IRaceCompetitor;
|
||||
import com.tractrac.model.lib.api.map.IMapItem;
|
||||
import com.tractrac.model.lib.api.map.IPositionedItem;
|
||||
import com.tractrac.subscription.lib.api.IEventSubscriber;
|
||||
import com.tractrac.subscription.lib.api.IRaceSubscriber;
|
||||
import com.tractrac.subscription.lib.api.SubscriberInitializationException;
|
||||
@@ -129,7 +130,7 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
|
||||
private final com.sap.sailing.domain.base.DomainFactory baseDomainFactory;
|
||||
|
||||
private final WeakValueCache<TracTracControlPoint, com.sap.sailing.domain.base.ControlPoint> controlPointCache = new WeakValueCache<>(new HashMap<>());
|
||||
private final WeakValueCache<IMapItem, com.sap.sailing.domain.base.ControlPoint> controlPointCache = new WeakValueCache<>(new HashMap<>());
|
||||
|
||||
private final Map<com.sap.sse.common.Util.Pair<String, UUID>, DynamicPerson> personCache = new HashMap<>();
|
||||
|
||||
@@ -229,11 +230,11 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
return sidelines;
|
||||
}
|
||||
|
||||
public com.sap.sailing.domain.base.ControlPoint getOrCreateControlPoint(TracTracControlPoint controlPoint) {
|
||||
public com.sap.sailing.domain.base.ControlPoint getOrCreateControlPoint(IMapItem mapItem) {
|
||||
synchronized (controlPointCache) {
|
||||
com.sap.sailing.domain.base.ControlPoint domainControlPoint = controlPointCache.get(controlPoint);
|
||||
com.sap.sailing.domain.base.ControlPoint domainControlPoint = controlPointCache.get(mapItem);
|
||||
if (domainControlPoint == null) {
|
||||
final Iterable<MetadataParser.ControlPointMetaData> controlPointMetadata = getMetadataParser().parseControlPointMetadata(controlPoint);
|
||||
final MetadataParser.ControlPointMetaData controlPointMetadata = getMetadataParser().parseControlPointMetadata(positionedItem);
|
||||
final List<Mark> marks = new ArrayList<Mark>();
|
||||
for (ControlPointMetaData markMetadata : controlPointMetadata) {
|
||||
final Mark mark = baseDomainFactory.getOrCreateMark(markMetadata.getId(), markMetadata.getName(),
|
||||
@@ -242,18 +243,48 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
markMetadata.getShape(), markMetadata.getPattern());
|
||||
marks.add(mark);
|
||||
}
|
||||
if (controlPoint.getHasTwoPoints()) {
|
||||
if (positionedItem.getHasTwoPoints()) {
|
||||
// it's a gate
|
||||
Iterator<Mark> markIter = marks.iterator();
|
||||
Mark mark1 = markIter.next();
|
||||
Mark mark2 = markIter.next();
|
||||
domainControlPoint = baseDomainFactory.createControlPointWithTwoMarks(controlPoint.getId(), mark1,
|
||||
mark2, controlPoint.getName(), controlPoint.getShortName());
|
||||
domainControlPoint = baseDomainFactory.createControlPointWithTwoMarks(positionedItem.getId(), mark1,
|
||||
mark2, positionedItem.getName(), positionedItem.getShortName());
|
||||
} else {
|
||||
Mark mark = marks.iterator().next();
|
||||
domainControlPoint = mark;
|
||||
}
|
||||
controlPointCache.put(controlPoint, domainControlPoint);
|
||||
controlPointCache.put(positionedItem, domainControlPoint);
|
||||
}
|
||||
return domainControlPoint;
|
||||
}
|
||||
}
|
||||
|
||||
public com.sap.sailing.domain.base.ControlPoint getOrCreateControlPoint(IPositionedItem positionedItem) {
|
||||
synchronized (controlPointCache) {
|
||||
com.sap.sailing.domain.base.ControlPoint domainControlPoint = controlPointCache.get(positionedItem);
|
||||
if (domainControlPoint == null) {
|
||||
final MetadataParser.ControlPointMetaData controlPointMetadata = getMetadataParser().parseControlPointMetadata(positionedItem);
|
||||
final List<Mark> marks = new ArrayList<Mark>();
|
||||
for (ControlPointMetaData markMetadata : controlPointMetadata) {
|
||||
final Mark mark = baseDomainFactory.getOrCreateMark(markMetadata.getId(), markMetadata.getName(),
|
||||
/* no separate short name; use name as short name, too */ markMetadata.getName(),
|
||||
markMetadata.getType(), markMetadata.getColor(),
|
||||
markMetadata.getShape(), markMetadata.getPattern());
|
||||
marks.add(mark);
|
||||
}
|
||||
if (positionedItem.getHasTwoPoints()) {
|
||||
// it's a gate
|
||||
Iterator<Mark> markIter = marks.iterator();
|
||||
Mark mark1 = markIter.next();
|
||||
Mark mark2 = markIter.next();
|
||||
domainControlPoint = baseDomainFactory.createControlPointWithTwoMarks(positionedItem.getId(), mark1,
|
||||
mark2, positionedItem.getName(), positionedItem.getShortName());
|
||||
} else {
|
||||
Mark mark = marks.iterator().next();
|
||||
domainControlPoint = mark;
|
||||
}
|
||||
controlPointCache.put(positionedItem, domainControlPoint);
|
||||
}
|
||||
return domainControlPoint;
|
||||
}
|
||||
@@ -1014,8 +1045,8 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mark getMark(TracTracControlPoint controlPoint, int zeroBasedMarkIndex) {
|
||||
com.sap.sailing.domain.base.ControlPoint myControlPoint = getOrCreateControlPoint(controlPoint);
|
||||
public Mark getMark(IPositionedItem positionedItem) {
|
||||
com.sap.sailing.domain.base.ControlPoint myControlPoint = getOrCreateControlPoint(positionedItem);
|
||||
Mark result;
|
||||
Iterator<Mark> iter = myControlPoint.getMarks().iterator();
|
||||
if (controlPoint.getHasTwoPoints()) {
|
||||
|
||||
Reference in New Issue
Block a user