Should fix the race xml issues where boats get unassigned sometimes.
This removes the static raceServer stuff. The Race/Boat/Regatta XML commands only execute if they contain newer data (it checks the sequence number).
This commit is contained in:
@@ -24,7 +24,6 @@ import java.util.logging.Logger;
|
|||||||
public class RaceServer {
|
public class RaceServer {
|
||||||
private MockRace race;
|
private MockRace race;
|
||||||
private LatestMessages latestMessages;
|
private LatestMessages latestMessages;
|
||||||
private static RaceServer server;
|
|
||||||
private List<YachtEvent> collisionEvents = new ArrayList<>();
|
private List<YachtEvent> collisionEvents = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
@@ -50,16 +49,10 @@ public class RaceServer {
|
|||||||
|
|
||||||
|
|
||||||
public RaceServer(MockRace race, LatestMessages latestMessages) {
|
public RaceServer(MockRace race, LatestMessages latestMessages) {
|
||||||
server = this;
|
|
||||||
this.race = race;
|
this.race = race;
|
||||||
this.latestMessages = latestMessages;
|
this.latestMessages = latestMessages;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void staticUpdateXML() {
|
|
||||||
if (server != null) {
|
|
||||||
server.updateXMLFiles();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parses the race to create a snapshot, and places it in latestMessages.
|
* Parses the race to create a snapshot, and places it in latestMessages.
|
||||||
|
|||||||
@@ -157,7 +157,6 @@ public class LatestMessages extends Observable {
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
RaceServer.staticUpdateXML();
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -183,6 +183,10 @@ public class BoatXMLReader extends XMLReader implements BoatDataSource {
|
|||||||
return sequenceNumber;
|
return sequenceNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSequenceNumber(int sequenceNumber) {
|
||||||
|
this.sequenceNumber = sequenceNumber;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void incrementSequenceNumber() {
|
public void incrementSequenceNumber() {
|
||||||
sequenceNumber++;
|
sequenceNumber++;
|
||||||
|
|||||||
@@ -499,6 +499,10 @@ public class RaceXMLReader extends XMLReader implements RaceDataSource {
|
|||||||
return sequenceNumber;
|
return sequenceNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSequenceNumber(int sequenceNumber) {
|
||||||
|
this.sequenceNumber = sequenceNumber;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void incrementSequenceNumber() {
|
public void incrementSequenceNumber() {
|
||||||
sequenceNumber++;
|
sequenceNumber++;
|
||||||
|
|||||||
@@ -217,6 +217,10 @@ public class RegattaXMLReader extends XMLReader implements RegattaDataSource {
|
|||||||
return sequenceNumber;
|
return sequenceNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSequenceNumber(int sequenceNumber) {
|
||||||
|
this.sequenceNumber = sequenceNumber;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void incrementSequenceNumber() {
|
public void incrementSequenceNumber() {
|
||||||
sequenceNumber++;
|
sequenceNumber++;
|
||||||
|
|||||||
+2
-2
@@ -41,8 +41,8 @@ public class BoatsXMLMessageCommand implements Command {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute() {
|
public void execute() {
|
||||||
|
if (boatDataSource.getSequenceNumber() > visualiserRace.getBoatDataSource().getSequenceNumber()) {
|
||||||
visualiserRace.setBoatDataSource(boatDataSource);
|
visualiserRace.setBoatDataSource(boatDataSource);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -38,7 +38,9 @@ public class RaceXMLMessageCommand implements Command {
|
|||||||
@Override
|
@Override
|
||||||
public void execute() {
|
public void execute() {
|
||||||
|
|
||||||
|
if (raceDataSource.getSequenceNumber() > visualiserRace.getRaceDataSource().getSequenceNumber()) {
|
||||||
visualiserRace.setRaceDataSource(raceDataSource);
|
visualiserRace.setRaceDataSource(raceDataSource);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -37,8 +37,9 @@ public class RegattaXMLMessageCommand implements Command {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute() {
|
public void execute() {
|
||||||
|
if (regattaDataSource.getSequenceNumber() > visualiserRace.getRegattaDataSource().getSequenceNumber()) {
|
||||||
visualiserRace.setRegattaDataSource(regattaDataSource);
|
visualiserRace.setRegattaDataSource(regattaDataSource);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-3
@@ -34,17 +34,20 @@ public class XMLMessageCommandFactory {
|
|||||||
switch (message.getXmlMsgSubType()) {
|
switch (message.getXmlMsgSubType()) {
|
||||||
|
|
||||||
case BOAT:
|
case BOAT:
|
||||||
BoatDataSource boatDataSource = new BoatXMLReader(message.getXmlMessage(), XMLFileType.Contents);
|
BoatXMLReader boatDataSource = new BoatXMLReader(message.getXmlMessage(), XMLFileType.Contents);
|
||||||
|
boatDataSource.setSequenceNumber(message.getSequenceNumber());
|
||||||
return new BoatsXMLMessageCommand(boatDataSource, visualiserRace);
|
return new BoatsXMLMessageCommand(boatDataSource, visualiserRace);
|
||||||
|
|
||||||
|
|
||||||
case RACE:
|
case RACE:
|
||||||
RaceDataSource raceDataSource = new RaceXMLReader(message.getXmlMessage(), XMLFileType.Contents);
|
RaceXMLReader raceDataSource = new RaceXMLReader(message.getXmlMessage(), XMLFileType.Contents);
|
||||||
|
raceDataSource.setSequenceNumber(message.getSequenceNumber());
|
||||||
return new RaceXMLMessageCommand(raceDataSource, visualiserRace);
|
return new RaceXMLMessageCommand(raceDataSource, visualiserRace);
|
||||||
|
|
||||||
|
|
||||||
case REGATTA:
|
case REGATTA:
|
||||||
RegattaDataSource regattaDataSource = new RegattaXMLReader(message.getXmlMessage(), XMLFileType.Contents);
|
RegattaXMLReader regattaDataSource = new RegattaXMLReader(message.getXmlMessage(), XMLFileType.Contents);
|
||||||
|
regattaDataSource.setSequenceNumber(message.getSequenceNumber());
|
||||||
return new RegattaXMLMessageCommand(regattaDataSource, visualiserRace);
|
return new RegattaXMLMessageCommand(regattaDataSource, visualiserRace);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user