package seng302.Model; import seng302.Data.BoatData; import seng302.Data.RaceData; import seng302.Data.RegattaData; import seng302.DataInput.RaceDataSource; import seng302.DataInput.RegattaDataSource; import seng302.Exceptions.InvalidBoatDataException; import seng302.Exceptions.InvalidRaceDataException; import seng302.Exceptions.InvalidRegattaDataException; import seng302.Networking.MessageEncoders.XMLMessageEncoder; import seng302.Networking.MockOutput; import seng302.Networking.Utils.XMLMessage; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; /** * Created by esa46 on 21/04/17. */ public class Event { RaceDataSource raceDataSource; RegattaDataSource regattaDataSource; MockOutput mockOutput; public Event(RaceDataSource raceData, RegattaDataSource regattaData) { this.raceDataSource = raceData; this.regattaDataSource = regattaData; try { mockOutput = new MockOutput(); new Thread(mockOutput).start(); } catch (IOException e) { e.printStackTrace(); } } public void start() { System.out.println("Sending Regatta"); sendRegattaData(); System.out.println("Sending Race"); sendRaceData(); System.out.println("Sending Boat"); sendBoatData(); Race newRace = new Race(raceDataSource, 15, mockOutput); new Thread((newRace)).start(); } public void sendRegattaData() throws InvalidRegattaDataException { System.setOut(System.out); RegattaData regattaData = new RegattaData(regattaDataSource); String xmlString = regattaData.createXML(); mockOutput.parseXMLString(xmlString, 26); } public void sendRaceData() throws InvalidRaceDataException { RaceData raceData = new RaceData(raceDataSource); //Serialize race data to an XML as a string. String xmlString = raceData.createXML(); mockOutput.parseXMLString(xmlString, 26); } public void sendBoatData() throws InvalidBoatDataException { BoatData boatData = new BoatData(raceDataSource.getBoats()); //Serialize race data to an XML as a string. String xmlString = boatData.createXML(); mockOutput.parseXMLString(xmlString, 26); } }