You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
package visualiser.Commands.VisualiserRaceCommands;
|
|
|
|
import mock.model.commandFactory.Command;
|
|
import network.Messages.XMLMessage;
|
|
import shared.dataInput.BoatDataSource;
|
|
import shared.dataInput.BoatXMLReader;
|
|
import shared.enums.XMLFileType;
|
|
import shared.exceptions.InvalidBoatDataException;
|
|
import shared.exceptions.XMLReaderException;
|
|
import visualiser.model.VisualiserRaceEvent;
|
|
import visualiser.model.VisualiserRaceState;
|
|
|
|
|
|
/**
|
|
* Command created when a {@link network.Messages.Enums.XMLMessageType#BOAT} {@link XMLMessage} message is received.
|
|
*/
|
|
public class BoatsXMLMessageCommand implements Command {
|
|
|
|
/**
|
|
* The data source to operate on.
|
|
*/
|
|
private BoatDataSource boatDataSource;
|
|
|
|
/**
|
|
* The context to operate on.
|
|
*/
|
|
private VisualiserRaceState visualiserRace;
|
|
|
|
|
|
/**
|
|
* Creates a new {@link BoatsXMLMessageCommand}, which operates on a given {@link VisualiserRaceEvent}.
|
|
* @param boatDataSource The data source to operate on.
|
|
* @param visualiserRace The context to operate on.
|
|
*/
|
|
public BoatsXMLMessageCommand(BoatDataSource boatDataSource, VisualiserRaceState visualiserRace) {
|
|
this.boatDataSource = boatDataSource;
|
|
this.visualiserRace = visualiserRace;
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
public void execute() {
|
|
if (boatDataSource.getSequenceNumber() > visualiserRace.getBoatDataSource().getSequenceNumber()) {
|
|
visualiserRace.setBoatDataSource(boatDataSource);
|
|
}
|
|
}
|
|
}
|