Made all the model classes extend off the schema xml classes for race, and made xml builder, validator and reader utility class.

#story[1092]
main
Fan-Wu Yang 8 years ago
parent 70d5447e88
commit b5e414f97a

@ -0,0 +1,3 @@
<component name="CopyrightManager">
<settings default="" />
</component>

@ -3,7 +3,6 @@ package mock.app;
import mock.dataInput.PolarParser; import mock.dataInput.PolarParser;
import mock.model.MockRace; import mock.model.MockRace;
import mock.model.Polars; import mock.model.Polars;
import mock.xml.Race;
import mock.xml.RaceXMLCreator; import mock.xml.RaceXMLCreator;
import network.Messages.LatestMessages; import network.Messages.LatestMessages;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
@ -14,6 +13,7 @@ import shared.exceptions.InvalidRaceDataException;
import shared.exceptions.InvalidRegattaDataException; import shared.exceptions.InvalidRegattaDataException;
import shared.exceptions.XMLReaderException; import shared.exceptions.XMLReaderException;
import shared.model.Constants; import shared.model.Constants;
import shared.xml.Race.XMLRace;
import shared.xml.XMLUtilities; import shared.xml.XMLUtilities;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
@ -22,8 +22,6 @@ import javax.xml.transform.TransformerException;
import java.io.*; import java.io.*;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
/** /**
@ -49,7 +47,7 @@ public class Event {
private Event() { private Event() {
try { try {
try { try {
this.raceXML = getRaceXMLAtCurrentTime(RaceXMLCreator.alterRaceToWind("mock/mockXML/raceSchemaTest.xml", 90)); this.raceXML = RaceXMLCreator.alterRaceToWind("mock/mockXML/raceSchemaTest.xml", 90);
} catch (SAXException e) { } catch (SAXException e) {
e.printStackTrace(); e.printStackTrace();
} catch (ParserConfigurationException e) { } catch (ParserConfigurationException e) {
@ -102,15 +100,16 @@ public class Event {
sendXMLs(); sendXMLs();
//Parse the XML files into data sources. //Parse the XML files into data sources.
// RaceDataSource raceDataSource = new RaceXMLReader(this.raceXML, this.xmlFileType); RaceDataSource raceDataSource = new RaceXMLReader(this.raceXML, this.xmlFileType);
Race race = (Race) XMLUtilities.xmlToClass(raceXML, //more work here
XMLRace race = (XMLRace) XMLUtilities.xmlToClass(raceXML,
RaceXMLCreator.class.getClassLoader().getResource("mock/mockXML/schema/raceSchema.xsd"), RaceXMLCreator.class.getClassLoader().getResource("mock/mockXML/schema/raceSchema.xsd"),
Race.class); XMLRace.class);
BoatDataSource boatDataSource = new BoatXMLReader(this.boatXML, this.xmlFileType); BoatDataSource boatDataSource = new BoatXMLReader(this.boatXML, this.xmlFileType);
RegattaDataSource regattaDataSource = new RegattaXMLReader(this.regattaXML, this.xmlFileType); RegattaDataSource regattaDataSource = new RegattaXMLReader(this.regattaXML, this.xmlFileType);
//Create and start race. //Create and start race.
MockRace newRace = new MockRace(boatDataSource, race, regattaDataSource, this.latestMessages, this.boatPolars, Constants.RaceTimeScale); MockRace newRace = new MockRace(boatDataSource, raceDataSource, regattaDataSource, this.latestMessages, this.boatPolars, Constants.RaceTimeScale);
new Thread(newRace).start(); new Thread(newRace).start();
} }
@ -127,28 +126,5 @@ public class Event {
mockOutput.setBoatsXml(boatXML); mockOutput.setBoatsXml(boatXML);
} }
/**
* Sets the xml description of the race to show the race was created now, and starts in 4 minutes
* @param raceXML The race.xml contents.
* @return String containing edited xml
*/
private String getRaceXMLAtCurrentTime(String raceXML) {
//The start time is current time + 4 minutes. prestart is 3 minutes, and we add another minute.
long millisecondsToAdd = Constants.RacePreStartTime + (1 * 60 * 1000);
long secondsToAdd = millisecondsToAdd / 1000;
//Scale the time using our time scalar.
secondsToAdd = secondsToAdd / Constants.RaceTimeScale;
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
ZonedDateTime creationTime = ZonedDateTime.now();
raceXML = raceXML.replace("CREATION_TIME", dateFormat.format(creationTime));
raceXML = raceXML.replace("START_TIME", dateFormat.format(creationTime.plusSeconds(secondsToAdd)));
return raceXML;
}
} }

@ -90,7 +90,7 @@ public class MockRace extends Race {
* @param polars The polars table to be used for boat simulation. * @param polars The polars table to be used for boat simulation.
* @param timeScale The timeScale for the race. See {@link Constants#RaceTimeScale}. * @param timeScale The timeScale for the race. See {@link Constants#RaceTimeScale}.
*/ */
public MockRace(BoatDataSource boatDataSource, mock.xml.Race raceDataSource, RegattaDataSource regattaDataSource, LatestMessages latestMessages, Polars polars, int timeScale) { public MockRace(BoatDataSource boatDataSource, RaceDataSource raceDataSource, RegattaDataSource regattaDataSource, LatestMessages latestMessages, Polars polars, int timeScale) {
super(boatDataSource, raceDataSource, regattaDataSource, latestMessages); super(boatDataSource, raceDataSource, regattaDataSource, latestMessages);

File diff suppressed because it is too large Load Diff

@ -1,127 +0,0 @@
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 10:39:29 PM NZST
//
package mock.xml;
import javax.xml.bind.annotation.XmlRegistry;
/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the scd package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRegistry
public class RaceFactory {
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: scd
*
*/
public RaceFactory() {
}
/**
* Create an instance of {@link Race }
*
*/
public Race createRace() {
return new Race();
}
/**
* Create an instance of {@link Race.CourseLimit }
*
*/
public Race.CourseLimit createRaceCourseLimit() {
return new Race.CourseLimit();
}
/**
* Create an instance of {@link Race.Course }
*
*/
public Race.Course createRaceCourse() {
return new Race.Course();
}
/**
* Create an instance of {@link Race.Course.CompoundMark }
*
*/
public Race.Course.CompoundMark createRaceCourseCompoundMark() {
return new Race.Course.CompoundMark();
}
/**
* Create an instance of {@link Race.CompoundMarkSequence }
*
*/
public Race.CompoundMarkSequence createRaceCompoundMarkSequence() {
return new Race.CompoundMarkSequence();
}
/**
* Create an instance of {@link Race.Participants }
*
*/
public Race.Participants createRaceParticipants() {
return new Race.Participants();
}
/**
* Create an instance of {@link Race.RaceStartTime }
*
*/
public Race.RaceStartTime createRaceRaceStartTime() {
return new Race.RaceStartTime();
}
/**
* Create an instance of {@link Race.CourseLimit.Limit }
*
*/
public Race.CourseLimit.Limit createRaceCourseLimitLimit() {
return new Race.CourseLimit.Limit();
}
/**
* Create an instance of {@link Race.Course.CompoundMark.Mark }
*
*/
public Race.Course.CompoundMark.Mark createRaceCourseCompoundMarkMark() {
return new Race.Course.CompoundMark.Mark();
}
/**
* Create an instance of {@link Race.CompoundMarkSequence.Corner }
*
*/
public Race.CompoundMarkSequence.Corner createRaceCompoundMarkSequenceCorner() {
return new Race.CompoundMarkSequence.Corner();
}
/**
* Create an instance of {@link Race.Participants.Yacht }
*
*/
public Race.Participants.Yacht createRaceParticipantsYacht() {
return new Race.Participants.Yacht();
}
}

@ -6,10 +6,8 @@ import shared.dataInput.RaceXMLReader;
import shared.enums.XMLFileType; import shared.enums.XMLFileType;
import shared.exceptions.InvalidRaceDataException; import shared.exceptions.InvalidRaceDataException;
import shared.exceptions.XMLReaderException; import shared.exceptions.XMLReaderException;
import shared.model.CompoundMark; import shared.model.*;
import shared.model.Corner; import shared.xml.Race.*;
import shared.model.GPSCoordinate;
import shared.model.Mark;
import shared.xml.XMLUtilities; import shared.xml.XMLUtilities;
import javax.xml.XMLConstants; import javax.xml.XMLConstants;
@ -29,98 +27,16 @@ import javax.xml.validation.Validator;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.StringWriter; import java.io.StringWriter;
import java.math.BigInteger;
import java.net.URL; import java.net.URL;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
/** /**
* Helper Class for creating a Race XML * Helper Class for creating a Race XML
*/ */
public class RaceXMLCreator { public class RaceXMLCreator {
/**
* Copy the race to a mock.xml.Race class from a RaceXMlReader
* @param reader RaceXMlReader
* @return string of the new mock.xml.Race
* @throws InvalidRaceDataException If the reader is unable to be read
* @throws XMLReaderException If the reader is unable to be read
*/
public static Race copyRace(RaceXMLReader reader) throws InvalidRaceDataException, XMLReaderException {
RaceFactory raceFactory = new RaceFactory();
Race race = raceFactory.createRace();
race.setRaceID(String.valueOf(reader.getRaceId()));
race.setRaceType(String.valueOf(reader.getRaceType()));
race.setCreationTimeDate("CREATION_TIME");//this needs to be changed later
//Race Start Time
Race.RaceStartTime raceStartTime = raceFactory.createRaceRaceStartTime();
raceStartTime.setPostpone("false");
raceStartTime.setTime("START_TIME");//this needs to be changed later
race.setRaceStartTime(raceStartTime);
//Participants
Race.Participants participants = raceFactory.createRaceParticipants();
for (int i :reader.getParticipants()) {
Race.Participants.Yacht yacht = raceFactory.createRaceParticipantsYacht();
yacht.setSourceID(String.valueOf(i));
participants.getYacht().add(yacht); //java schema does not clone the array so this is "safe".
}
race.setParticipants(participants);
//compound marks sequence
Race.CompoundMarkSequence cms = raceFactory.createRaceCompoundMarkSequence();
for (Corner mark: reader.getCornersList()){
Race.CompoundMarkSequence.Corner corner = raceFactory.createRaceCompoundMarkSequenceCorner();
corner.setCompoundMarkID(String.valueOf(mark.getId()));
corner.setSeqID(String.valueOf(mark.getSeqID()));
cms.getCorner().add(corner);
}
race.setCompoundMarkSequence(cms);
//Course
Race.Course course = raceFactory.createRaceCourse();
for (CompoundMark mark: reader.getCompoundMarks()){
Race.Course.CompoundMark cm = raceFactory.createRaceCourseCompoundMark();
cm.setName(mark.getName());
cm.setCompoundMarkID(String.valueOf(mark.getId()));
cm.getMark().add(setMarkFromMark(raceFactory, mark.getMark1()));
Race.Course.CompoundMark.Mark m2 = setMarkFromMark(raceFactory, mark.getMark2());
if (m2 != null) {
cm.getMark().add(m2);
}
course.getCompoundMark().add(cm);
}
race.setCourse(course);
//Course Limit
Race.CourseLimit courseLimit = raceFactory.createRaceCourseLimit();
for (int i = 0; i < reader.getBoundary().size(); i++){
Race.CourseLimit.Limit limit = raceFactory.createRaceCourseLimitLimit();
limit.setSeqID(String.valueOf(i+1));
limit.setLat(String.valueOf(reader.getBoundary().get(i).getLatitude()));
limit.setLon(String.valueOf(reader.getBoundary().get(i).getLongitude()));
courseLimit.getLimit().add(limit);
}
race.setCourseLimit(courseLimit);
return race;
}
/**
* Sets a mock.xml.Mark from a shared.model.Mark
* @param raceFactory race Factory for creating mock.xml.Race classes and subclasses
* @param mark Mark to be converted.
* @return converted mock.xml.Mark.
*/
public static Race.Course.CompoundMark.Mark setMarkFromMark(RaceFactory raceFactory, Mark mark){
if (mark != null) {
Race.Course.CompoundMark.Mark m = raceFactory.createRaceCourseCompoundMarkMark();
m.setName(mark.getName());
m.setTargetLat(String.valueOf(mark.getPosition().getLatitude()));
m.setTargetLng(String.valueOf(mark.getPosition().getLongitude()));
m.setSourceID(String.valueOf(mark.getSourceID()));
return m;
}
return null;
}
/** /**
* get the windward gate in a race * get the windward gate in a race
@ -158,9 +74,11 @@ public class RaceXMLCreator {
public static String alterRaceToWind(String s, double degrees) throws XMLReaderException, InvalidRaceDataException, JAXBException, IOException, SAXException, ParserConfigurationException { public static String alterRaceToWind(String s, double degrees) throws XMLReaderException, InvalidRaceDataException, JAXBException, IOException, SAXException, ParserConfigurationException {
RaceXMLReader reader = new RaceXMLReader(s, XMLFileType.ResourcePath); RaceXMLReader reader = new RaceXMLReader(s, XMLFileType.ResourcePath);
Race race = (Race) XMLUtilities.xmlToClass(new File(RaceXMLCreator.class.getClassLoader().getResource(s).getFile()), XMLRace race = (XMLRace) XMLUtilities.xmlToClass(new File(RaceXMLCreator.class.getClassLoader().getResource(s).getFile()),
RaceXMLCreator.class.getClassLoader().getResource("mock/mockXML/schema/raceSchema.xsd"), RaceXMLCreator.class.getClassLoader().getResource("mock/mockXML/schema/raceSchema.xsd"),
Race.class); XMLRace.class);
setRaceXMLAtCurrentTimeToNow(race);
double raceOriginalBearing = getLineAngle(getLeewardGate(reader).getMark1Position(), getWindwardGate(reader).getMark1Position()); double raceOriginalBearing = getLineAngle(getLeewardGate(reader).getMark1Position(), getWindwardGate(reader).getMark1Position());
@ -168,7 +86,7 @@ public class RaceXMLCreator {
alterRaceRotation(race, degreesToRotate); alterRaceRotation(race, degreesToRotate);
JAXBContext context = JAXBContext.newInstance(Race.class); JAXBContext context = JAXBContext.newInstance(XMLRace.class);
Marshaller jaxbMarshaller = context.createMarshaller(); Marshaller jaxbMarshaller = context.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
@ -183,20 +101,20 @@ public class RaceXMLCreator {
* @param race the race to alter * @param race the race to alter
* @param degrees the degrees to rotate by. * @param degrees the degrees to rotate by.
*/ */
public static void alterRaceRotation(Race race, double degrees){ public static void alterRaceRotation(XMLRace race, double degrees){
GPSCoordinate center = getCenter(race); GPSCoordinate center = getCenter(race);
for(Race.CourseLimit.Limit limit: race.getCourseLimit().getLimit()){ for(XMLLimit limit: race.getCourseLimit().getLimit()){
GPSCoordinate rotatedLim = rotate(center, limitToGPSCoordinate(limit), degrees); GPSCoordinate rotatedLim = rotate(center, limitToGPSCoordinate(limit), degrees);
limit.setLat(String.valueOf(rotatedLim.getLatitude())); limit.setLat(rotatedLim.getLatitude());
limit.setLon(String.valueOf(rotatedLim.getLongitude())); limit.setLon(rotatedLim.getLongitude());
} }
for(Race.Course.CompoundMark compoundMark: race.getCourse().getCompoundMark()){ for(XMLCompoundMark compoundMark: race.getCourse().getCompoundMark()){
for (Race.Course.CompoundMark.Mark mark: compoundMark.getMark()){ for (XMLMark mark: compoundMark.getMark()){
System.out.println(mark); System.out.println(mark);
GPSCoordinate rotatedMark = rotate(center, markToGPSCoordinate(mark), degrees); GPSCoordinate rotatedMark = rotate(center, markToGPSCoordinate(mark), degrees);
mark.setTargetLat(String.valueOf(rotatedMark.getLatitude())); mark.setTargetLat(rotatedMark.getLatitude());
mark.setTargetLng(String.valueOf(rotatedMark.getLongitude())); mark.setTargetLng(rotatedMark.getLongitude());
} }
} }
} }
@ -206,8 +124,8 @@ public class RaceXMLCreator {
* @param limit limit to convert * @param limit limit to convert
* @return gps coordinate corresponding to the limit * @return gps coordinate corresponding to the limit
*/ */
public static GPSCoordinate limitToGPSCoordinate(Race.CourseLimit.Limit limit){ public static GPSCoordinate limitToGPSCoordinate(XMLLimit limit){
return new GPSCoordinate(Double.parseDouble(limit.getLat()), Double.parseDouble(limit.getLon())); return new GPSCoordinate(limit.getLat(), limit.getLon());
} }
/** /**
@ -232,8 +150,8 @@ public class RaceXMLCreator {
* @param mark mark to obtain the GPSCoordinates of * @param mark mark to obtain the GPSCoordinates of
* @return the GPSCOordinatess of a mark * @return the GPSCOordinatess of a mark
*/ */
public static GPSCoordinate markToGPSCoordinate(Race.Course.CompoundMark.Mark mark){ public static GPSCoordinate markToGPSCoordinate(XMLMark mark){
return new GPSCoordinate(Double.parseDouble(mark.getTargetLat()), Double.parseDouble(mark.getTargetLng())); return new GPSCoordinate(mark.getTargetLat(), mark.getTargetLng());
} }
/** /**
@ -241,12 +159,12 @@ public class RaceXMLCreator {
* @param race race to get the center of * @param race race to get the center of
* @return GPSCoordinates of the center * @return GPSCoordinates of the center
*/ */
public static GPSCoordinate getCenter(Race race){ public static GPSCoordinate getCenter(XMLRace race){
double avgLat = 0; double avgLat = 0;
double avgLng = 0; double avgLng = 0;
for (Race.CourseLimit.Limit limit: race.getCourseLimit().getLimit()){ for (XMLLimit limit: race.getCourseLimit().getLimit()){
avgLat += Double.parseDouble(limit.getLat()); avgLat += limit.getLat();
avgLng += Double.parseDouble(limit.getLon()); avgLng += limit.getLon();
} }
avgLat = avgLat/race.getCourseLimit().getLimit().size(); avgLat = avgLat/race.getCourseLimit().getLimit().size();
avgLng = avgLng/race.getCourseLimit().getLimit().size(); avgLng = avgLng/race.getCourseLimit().getLimit().size();
@ -265,4 +183,24 @@ public class RaceXMLCreator {
return Math.atan2(dy, dx)/Math.PI * 180; return Math.atan2(dy, dx)/Math.PI * 180;
} }
/**
* Sets the xml description of the race to show the race was created now, and starts in 4 minutes
* @param raceXML The race.xml contents.
* @return String containing edited xml
*/
public static void setRaceXMLAtCurrentTimeToNow(XMLRace raceXML) {
//The start time is current time + 4 minutes. prestart is 3 minutes, and we add another minute.
long millisecondsToAdd = Constants.RacePreStartTime + (1 * 60 * 1000);
long secondsToAdd = millisecondsToAdd / 1000;
//Scale the time using our time scalar.
secondsToAdd = secondsToAdd / Constants.RaceTimeScale;
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
ZonedDateTime creationTime = ZonedDateTime.now();
raceXML.setCreationTimeDate(dateFormat.format(creationTime));
raceXML.getRaceStartTime().setTime(dateFormat.format(creationTime.plusSeconds(secondsToAdd)));
}
} }

@ -337,7 +337,7 @@ public class RaceXMLReader extends XMLReader implements RaceDataSource {
int cornerSeq = Integer.parseInt(getAttribute(cornerElement, "SeqID")); int cornerSeq = Integer.parseInt(getAttribute(cornerElement, "SeqID"));
cornersList.add(new Corner(cornerID, cornerSeq)); cornersList.add(new Corner(cornerID, cornerSeq, "SP", 3));
//Gets the CompoundMark associated with this corner. //Gets the CompoundMark associated with this corner.
CompoundMark lastCompoundMark = this.compoundMarkMap.get(cornerID); CompoundMark lastCompoundMark = this.compoundMarkMap.get(cornerID);
@ -356,7 +356,7 @@ public class RaceXMLReader extends XMLReader implements RaceDataSource {
cornerSeq = Integer.parseInt(getAttribute(cornerElement, "SeqID")); cornerSeq = Integer.parseInt(getAttribute(cornerElement, "SeqID"));
cornersList.add(new Corner(cornerID, cornerSeq)); cornersList.add(new Corner(cornerID, cornerSeq, "Port", 3));
//Gets the CompoundMark associated with this corner. //Gets the CompoundMark associated with this corner.
CompoundMark currentCompoundMark = this.compoundMarkMap.get(cornerID); CompoundMark currentCompoundMark = this.compoundMarkMap.get(cornerID);

@ -1,10 +1,12 @@
package shared.model; package shared.model;
import shared.xml.Race.XMLCompoundMark;
/** /**
* Represents a compound mark - that is, either one or two individual marks which form a single compound mark. * Represents a compound mark - that is, either one or two individual marks which form a single compound mark.
*/ */
public class CompoundMark { public class CompoundMark extends XMLCompoundMark{
/** /**
* The ID of the compound mark. * The ID of the compound mark.
@ -39,11 +41,7 @@ public class CompoundMark {
* @param mark1 The individual mark that comprises this compound mark. * @param mark1 The individual mark that comprises this compound mark.
*/ */
public CompoundMark(int id, String name, Mark mark1) { public CompoundMark(int id, String name, Mark mark1) {
this.id = id; this(id, name, mark1, null);
this.name = name;
this.mark1 = mark1;
this.averageGPSCoordinate = calculateAverage();
} }
@ -55,6 +53,13 @@ public class CompoundMark {
* @param mark2 The second individual mark that comprises this compound mark. * @param mark2 The second individual mark that comprises this compound mark.
*/ */
public CompoundMark(int id, String name, Mark mark1, Mark mark2) { public CompoundMark(int id, String name, Mark mark1, Mark mark2) {
//parent set up
super();
setName(name);
setCompoundMarkID(id);
getMark().add(mark1);
if (mark2 != null) getMark().add(mark2);
this.id = id; this.id = id;
this.name = name; this.name = name;
this.mark1 = mark1; this.mark1 = mark1;
@ -72,14 +77,6 @@ public class CompoundMark {
return id; return id;
} }
/**
* Returns the name of this compound mark
* @return The name of this compound mark.
*/
public String getName() {
return name;
}
/** /**
* Returns the first mark of the compound mark. * Returns the first mark of the compound mark.
* @return The first mark of the compound mark. * @return The first mark of the compound mark.

@ -1,23 +1,25 @@
package shared.model; package shared.model;
import shared.xml.Race.XMLCorner;
/** /**
* Created by Gondr on 3/08/2017. * Created by Gondr on 3/08/2017.
*/ */
public class Corner { public class Corner extends XMLCorner{
private int id; private int id;
private int seqID;
public Corner(int id, int seqID){ public Corner(int id, int seqID, String rounding, int zoneSize){
super();
setCompoundMarkID(id);
setSeqID(seqID);
setRounding(rounding);
setZoneSize(zoneSize);
this.id = id; this.id = id;
this.seqID = seqID;
} }
public int getId() { public int getId() {
return id; return id;
} }
public int getSeqID() {
return seqID;
}
} }

@ -1,28 +1,21 @@
package shared.model; package shared.model;
import shared.xml.Race.XMLMark;
import java.math.BigDecimal;
import java.math.BigInteger;
/** /**
* Represents an individual mark. * Represents an individual mark.
* Has a source ID, name, and position. * Has a source ID, name, and position.
*/ */
public class Mark { public class Mark extends XMLMark{
/**
* The source ID of the mark.
*/
private int sourceID;
/**
* The name of the mark.
*/
private String name;
/** /**
* The position of the mark. * The position of the mark.
*/ */
private GPSCoordinate position; private GPSCoordinate position;
/** /**
* Constructs a mark with a given source ID, name, and position. * Constructs a mark with a given source ID, name, and position.
* @param sourceID The source ID of the mark. * @param sourceID The source ID of the mark.
@ -30,8 +23,12 @@ public class Mark {
* @param position The position of the mark. * @param position The position of the mark.
*/ */
public Mark(int sourceID, String name, GPSCoordinate position) { public Mark(int sourceID, String name, GPSCoordinate position) {
this.sourceID = sourceID; super();
this.name = name; targetLat = position.getLatitude();
targetLng = position.getLongitude();
setSourceID(sourceID);
setName(name);
this.position = position; this.position = position;
} }
@ -44,14 +41,6 @@ public class Mark {
return name; return name;
} }
/**
* Returns the source ID of the mark.
* @return The source ID of the mark.
*/
public int getSourceID() {
return sourceID;
}
/** /**
* Returns the position of the mark. * Returns the position of the mark.
* @return The position of the mark. * @return The position of the mark.

@ -23,7 +23,7 @@ public abstract class Race implements Runnable {
/** /**
* The source of race related data. * The source of race related data.
*/ */
protected mock.xml.Race raceDataSource; protected RaceDataSource raceDataSource;
/** /**
* The source of boat related data. * The source of boat related data.
@ -134,7 +134,7 @@ public abstract class Race implements Runnable {
* @param regattaDataSource Data source for race related data (course name, location, timezone, etc...). * @param regattaDataSource Data source for race related data (course name, location, timezone, etc...).
* @param latestMessages The collection of latest messages, which can be written to, or read from. * @param latestMessages The collection of latest messages, which can be written to, or read from.
*/ */
public Race(BoatDataSource boatDataSource, mock.xml.Race raceDataSource, RegattaDataSource regattaDataSource, LatestMessages latestMessages) { public Race(BoatDataSource boatDataSource, RaceDataSource raceDataSource, RegattaDataSource regattaDataSource, LatestMessages latestMessages) {
//Keep a reference to data sources. //Keep a reference to data sources.
this.raceDataSource = raceDataSource; this.raceDataSource = raceDataSource;

@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 02:54:32 AM NZST
// //
package schema; package shared.xml.Race;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -31,17 +31,17 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="SeqId" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SeqId" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="TargetLat" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="TargetLat" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="TargetLng" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="TargetLng" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
* &lt;/element> * &lt;/element>
* &lt;/sequence> * &lt;/sequence>
* &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
@ -54,12 +54,12 @@ import javax.xml.bind.annotation.XmlType;
@XmlType(name = "", propOrder = { @XmlType(name = "", propOrder = {
"mark" "mark"
}) })
public class CompoundMark { public class XMLCompoundMark {
@XmlElement(name = "Mark", required = true) @XmlElement(name = "Mark", required = true)
protected List<Mark> mark; protected List<XMLMark> mark;
@XmlAttribute(name = "CompoundMarkID", required = true) @XmlAttribute(name = "CompoundMarkID", required = true)
protected String compoundMarkID; protected int compoundMarkID;
@XmlAttribute(name = "Name", required = true) @XmlAttribute(name = "Name", required = true)
protected String name; protected String name;
@ -81,13 +81,13 @@ public class CompoundMark {
* *
* <p> * <p>
* Objects of the following type(s) are allowed in the list * Objects of the following type(s) are allowed in the list
* {@link Mark } * {@link XMLMark }
* *
* *
*/ */
public List<Mark> getMark() { public List<XMLMark> getMark() {
if (mark == null) { if (mark == null) {
mark = new ArrayList<Mark>(); mark = new ArrayList<XMLMark>();
} }
return this.mark; return this.mark;
} }
@ -95,24 +95,16 @@ public class CompoundMark {
/** /**
* Gets the value of the compoundMarkID property. * Gets the value of the compoundMarkID property.
* *
* @return
* possible object is
* {@link String }
*
*/ */
public String getCompoundMarkID() { public int getCompoundMarkID() {
return compoundMarkID; return compoundMarkID;
} }
/** /**
* Sets the value of the compoundMarkID property. * Sets the value of the compoundMarkID property.
* *
* @param value
* allowed object is
* {@link String }
*
*/ */
public void setCompoundMarkID(String value) { public void setCompoundMarkID(int value) {
this.compoundMarkID = value; this.compoundMarkID = value;
} }

@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 02:54:32 AM NZST
// //
package schema; package shared.xml.Race;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -30,10 +30,10 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> * &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> * &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Rounding" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Rounding" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="ZoneSize" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> * &lt;attribute name="ZoneSize" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
@ -50,10 +50,10 @@ import javax.xml.bind.annotation.XmlType;
@XmlType(name = "", propOrder = { @XmlType(name = "", propOrder = {
"corner" "corner"
}) })
public class CompoundMarkSequence { public class XMLCompoundMarkSequence {
@XmlElement(name = "Corner", required = true) @XmlElement(name = "Corner", required = true)
protected List<Corner> corner; protected List<XMLCorner> corner;
/** /**
* Gets the value of the corner property. * Gets the value of the corner property.
@ -73,13 +73,13 @@ public class CompoundMarkSequence {
* *
* <p> * <p>
* Objects of the following type(s) are allowed in the list * Objects of the following type(s) are allowed in the list
* {@link Corner } * {@link XMLCorner }
* *
* *
*/ */
public List<Corner> getCorner() { public List<XMLCorner> getCorner() {
if (corner == null) { if (corner == null) {
corner = new ArrayList<Corner>(); corner = new ArrayList<XMLCorner>();
} }
return this.corner; return this.corner;
} }

@ -2,17 +2,15 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 02:54:32 AM NZST
// //
package schema; package shared.xml.Race;
import java.math.BigInteger;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlType;
@ -25,10 +23,10 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> * &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> * &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Rounding" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Rounding" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="ZoneSize" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> * &lt;attribute name="ZoneSize" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
@ -38,65 +36,46 @@ import javax.xml.bind.annotation.XmlType;
*/ */
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "") @XmlType(name = "")
public class Corner { public class XMLCorner {
@XmlAttribute(name = "CompoundMarkID", required = true) @XmlAttribute(name = "CompoundMarkID", required = true)
@XmlSchemaType(name = "positiveInteger") protected int compoundMarkID;
protected BigInteger compoundMarkID;
@XmlAttribute(name = "SeqID", required = true) @XmlAttribute(name = "SeqID", required = true)
@XmlSchemaType(name = "positiveInteger") protected int seqID;
protected BigInteger seqID;
@XmlAttribute(name = "Rounding", required = true) @XmlAttribute(name = "Rounding", required = true)
protected String rounding; protected String rounding;
@XmlAttribute(name = "ZoneSize", required = true) @XmlAttribute(name = "ZoneSize", required = true)
@XmlSchemaType(name = "positiveInteger") protected int zoneSize;
protected BigInteger zoneSize;
/** /**
* Gets the value of the compoundMarkID property. * Gets the value of the compoundMarkID property.
* *
* @return
* possible object is
* {@link BigInteger }
*
*/ */
public BigInteger getCompoundMarkID() { public int getCompoundMarkID() {
return compoundMarkID; return compoundMarkID;
} }
/** /**
* Sets the value of the compoundMarkID property. * Sets the value of the compoundMarkID property.
* *
* @param value
* allowed object is
* {@link BigInteger }
*
*/ */
public void setCompoundMarkID(BigInteger value) { public void setCompoundMarkID(int value) {
this.compoundMarkID = value; this.compoundMarkID = value;
} }
/** /**
* Gets the value of the seqID property. * Gets the value of the seqID property.
* *
* @return
* possible object is
* {@link BigInteger }
*
*/ */
public BigInteger getSeqID() { public int getSeqID() {
return seqID; return seqID;
} }
/** /**
* Sets the value of the seqID property. * Sets the value of the seqID property.
* *
* @param value
* allowed object is
* {@link BigInteger }
*
*/ */
public void setSeqID(BigInteger value) { public void setSeqID(int value) {
this.seqID = value; this.seqID = value;
} }
@ -127,24 +106,16 @@ public class Corner {
/** /**
* Gets the value of the zoneSize property. * Gets the value of the zoneSize property.
* *
* @return
* possible object is
* {@link BigInteger }
*
*/ */
public BigInteger getZoneSize() { public int getZoneSize() {
return zoneSize; return zoneSize;
} }
/** /**
* Sets the value of the zoneSize property. * Sets the value of the zoneSize property.
* *
* @param value
* allowed object is
* {@link BigInteger }
*
*/ */
public void setZoneSize(BigInteger value) { public void setZoneSize(int value) {
this.zoneSize = value; this.zoneSize = value;
} }

@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 02:54:32 AM NZST
// //
package schema; package shared.xml.Race;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -35,17 +35,17 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="SeqId" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SeqId" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="TargetLat" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="TargetLat" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="TargetLng" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="TargetLng" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
* &lt;/element> * &lt;/element>
* &lt;/sequence> * &lt;/sequence>
* &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
@ -63,10 +63,10 @@ import javax.xml.bind.annotation.XmlType;
@XmlType(name = "", propOrder = { @XmlType(name = "", propOrder = {
"compoundMark" "compoundMark"
}) })
public class Course { public class XMLCourse {
@XmlElement(name = "CompoundMark", required = true) @XmlElement(name = "CompoundMark", required = true)
protected List<CompoundMark> compoundMark; protected List<XMLCompoundMark> compoundMark;
/** /**
* Gets the value of the compoundMark property. * Gets the value of the compoundMark property.
@ -86,13 +86,13 @@ public class Course {
* *
* <p> * <p>
* Objects of the following type(s) are allowed in the list * Objects of the following type(s) are allowed in the list
* {@link CompoundMark } * {@link XMLCompoundMark }
* *
* *
*/ */
public List<CompoundMark> getCompoundMark() { public List<XMLCompoundMark> getCompoundMark() {
if (compoundMark == null) { if (compoundMark == null) {
compoundMark = new ArrayList<CompoundMark>(); compoundMark = new ArrayList<XMLCompoundMark>();
} }
return this.compoundMark; return this.compoundMark;
} }

@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 02:54:32 AM NZST
// //
package schema; package shared.xml.Race;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -30,9 +30,9 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="Lat" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Lat" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="Lon" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Lon" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
@ -49,10 +49,10 @@ import javax.xml.bind.annotation.XmlType;
@XmlType(name = "", propOrder = { @XmlType(name = "", propOrder = {
"limit" "limit"
}) })
public class CourseLimit { public class XMLCourseLimit {
@XmlElement(name = "Limit", required = true) @XmlElement(name = "Limit", required = true)
protected List<Limit> limit; protected List<XMLLimit> limit;
/** /**
* Gets the value of the limit property. * Gets the value of the limit property.
@ -72,13 +72,13 @@ public class CourseLimit {
* *
* <p> * <p>
* Objects of the following type(s) are allowed in the list * Objects of the following type(s) are allowed in the list
* {@link Limit } * {@link XMLLimit }
* *
* *
*/ */
public List<Limit> getLimit() { public List<XMLLimit> getLimit() {
if (limit == null) { if (limit == null) {
limit = new ArrayList<Limit>(); limit = new ArrayList<XMLLimit>();
} }
return this.limit; return this.limit;
} }

@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 02:54:32 AM NZST
// //
package schema; package shared.xml.Race;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
@ -23,9 +23,9 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="Lat" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Lat" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="Lon" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Lon" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
@ -35,84 +35,60 @@ import javax.xml.bind.annotation.XmlType;
*/ */
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "") @XmlType(name = "")
public class Limit { public class XMLLimit {
@XmlAttribute(name = "Lat", required = true) @XmlAttribute(name = "Lat", required = true)
protected String lat; protected double lat;
@XmlAttribute(name = "Lon", required = true) @XmlAttribute(name = "Lon", required = true)
protected String lon; protected double lon;
@XmlAttribute(name = "SeqID", required = true) @XmlAttribute(name = "SeqID", required = true)
protected String seqID; protected int seqID;
/** /**
* Gets the value of the lat property. * Gets the value of the lat property.
* *
* @return
* possible object is
* {@link String }
*
*/ */
public String getLat() { public double getLat() {
return lat; return lat;
} }
/** /**
* Sets the value of the lat property. * Sets the value of the lat property.
* *
* @param value
* allowed object is
* {@link String }
*
*/ */
public void setLat(String value) { public void setLat(double value) {
this.lat = value; this.lat = value;
} }
/** /**
* Gets the value of the lon property. * Gets the value of the lon property.
* *
* @return
* possible object is
* {@link String }
*
*/ */
public String getLon() { public double getLon() {
return lon; return lon;
} }
/** /**
* Sets the value of the lon property. * Sets the value of the lon property.
* *
* @param value
* allowed object is
* {@link String }
*
*/ */
public void setLon(String value) { public void setLon(double value) {
this.lon = value; this.lon = value;
} }
/** /**
* Gets the value of the seqID property. * Gets the value of the seqID property.
* *
* @return
* possible object is
* {@link String }
*
*/ */
public String getSeqID() { public int getSeqID() {
return seqID; return seqID;
} }
/** /**
* Sets the value of the seqID property. * Sets the value of the seqID property.
* *
* @param value
* allowed object is
* {@link String }
*
*/ */
public void setSeqID(String value) { public void setSeqID(int value) {
this.seqID = value; this.seqID = value;
} }

@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 02:54:32 AM NZST
// //
package schema; package shared.xml.Race;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
@ -23,11 +23,11 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="SeqId" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SeqId" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="TargetLat" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="TargetLat" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="TargetLng" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="TargetLng" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
@ -37,28 +37,28 @@ import javax.xml.bind.annotation.XmlType;
*/ */
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "") @XmlType(name = "")
public class Mark { public class XMLMark {
@XmlAttribute(name = "SeqId") @XmlAttribute(name = "SeqId")
protected String seqId; protected Integer seqId;
@XmlAttribute(name = "Name", required = true) @XmlAttribute(name = "Name", required = true)
protected String name; protected String name;
@XmlAttribute(name = "TargetLat", required = true) @XmlAttribute(name = "TargetLat", required = true)
protected String targetLat; protected double targetLat;
@XmlAttribute(name = "TargetLng", required = true) @XmlAttribute(name = "TargetLng", required = true)
protected String targetLng; protected double targetLng;
@XmlAttribute(name = "SourceID", required = true) @XmlAttribute(name = "SourceID", required = true)
protected String sourceID; protected int sourceID;
/** /**
* Gets the value of the seqId property. * Gets the value of the seqId property.
* *
* @return * @return
* possible object is * possible object is
* {@link String } * {@link Integer }
* *
*/ */
public String getSeqId() { public Integer getSeqId() {
return seqId; return seqId;
} }
@ -67,10 +67,10 @@ public class Mark {
* *
* @param value * @param value
* allowed object is * allowed object is
* {@link String } * {@link Integer }
* *
*/ */
public void setSeqId(String value) { public void setSeqId(Integer value) {
this.seqId = value; this.seqId = value;
} }
@ -101,72 +101,48 @@ public class Mark {
/** /**
* Gets the value of the targetLat property. * Gets the value of the targetLat property.
* *
* @return
* possible object is
* {@link String }
*
*/ */
public String getTargetLat() { public double getTargetLat() {
return targetLat; return targetLat;
} }
/** /**
* Sets the value of the targetLat property. * Sets the value of the targetLat property.
* *
* @param value
* allowed object is
* {@link String }
*
*/ */
public void setTargetLat(String value) { public void setTargetLat(double value) {
this.targetLat = value; this.targetLat = value;
} }
/** /**
* Gets the value of the targetLng property. * Gets the value of the targetLng property.
* *
* @return
* possible object is
* {@link String }
*
*/ */
public String getTargetLng() { public double getTargetLng() {
return targetLng; return targetLng;
} }
/** /**
* Sets the value of the targetLng property. * Sets the value of the targetLng property.
* *
* @param value
* allowed object is
* {@link String }
*
*/ */
public void setTargetLng(String value) { public void setTargetLng(double value) {
this.targetLng = value; this.targetLng = value;
} }
/** /**
* Gets the value of the sourceID property. * Gets the value of the sourceID property.
* *
* @return
* possible object is
* {@link String }
*
*/ */
public String getSourceID() { public int getSourceID() {
return sourceID; return sourceID;
} }
/** /**
* Sets the value of the sourceID property. * Sets the value of the sourceID property.
* *
* @param value
* allowed object is
* {@link String }
*
*/ */
public void setSourceID(String value) { public void setSourceID(int value) {
this.sourceID = value; this.sourceID = value;
} }

@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 02:54:32 AM NZST
// //
package schema; package shared.xml.Race;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -30,7 +30,7 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Entry" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Entry" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
@ -48,10 +48,10 @@ import javax.xml.bind.annotation.XmlType;
@XmlType(name = "", propOrder = { @XmlType(name = "", propOrder = {
"yacht" "yacht"
}) })
public class Participants { public class XMLParticipants {
@XmlElement(name = "Yacht", required = true) @XmlElement(name = "Yacht", required = true)
protected List<Yacht> yacht; protected List<XMLYacht> yacht;
/** /**
* Gets the value of the yacht property. * Gets the value of the yacht property.
@ -71,13 +71,13 @@ public class Participants {
* *
* <p> * <p>
* Objects of the following type(s) are allowed in the list * Objects of the following type(s) are allowed in the list
* {@link Yacht } * {@link XMLYacht }
* *
* *
*/ */
public List<Yacht> getYacht() { public List<XMLYacht> getYacht() {
if (yacht == null) { if (yacht == null) {
yacht = new ArrayList<Yacht>(); yacht = new ArrayList<XMLYacht>();
} }
return this.yacht; return this.yacht;
} }

@ -2,32 +2,30 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 03:20:03 AM NZST
// //
package schema; package shared.xml.Race;
import java.math.BigInteger;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlType;
/** /**
* <p>Java class for anonymous complex type. * <p>Java class for anonymous complex type.
* *
* <p>The following schema fragment specifies the expected content contained within this class. * <p>The following schema fragment specifies the expected content contained within this class.
* *
* <pre> * <pre>
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence> * &lt;sequence>
* &lt;element name="RaceID" type="{http://www.w3.org/2001/XMLSchema}positiveInteger"/> * &lt;element name="RaceID" type="{http://www.w3.org/2001/XMLSchema}int"/>
* &lt;element name="RaceType" type="{http://www.w3.org/2001/XMLSchema}string"/> * &lt;element name="RaceType" type="{http://www.w3.org/2001/XMLSchema}string"/>
* &lt;element name="CreationTimeDate" type="{http://www.w3.org/2001/XMLSchema}string"/> * &lt;element name="CreationTimeDate" type="{http://www.w3.org/2001/XMLSchema}string"/>
* &lt;element name="RaceStartTime"> * &lt;element name="RaceStartTime">
@ -49,7 +47,7 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Entry" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Entry" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
@ -69,10 +67,10 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> * &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> * &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Rounding" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Rounding" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="ZoneSize" use="required" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> * &lt;attribute name="ZoneSize" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
@ -96,17 +94,17 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="SeqId" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SeqId" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;attribute name="TargetLat" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="TargetLat" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="TargetLng" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="TargetLng" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
* &lt;/element> * &lt;/element>
* &lt;/sequence> * &lt;/sequence>
* &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="CompoundMarkID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
@ -126,9 +124,9 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="Lat" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Lat" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="Lon" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Lon" use="required" type="{http://www.w3.org/2001/XMLSchema}double" />
* &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SeqID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
@ -143,72 +141,63 @@ import javax.xml.bind.annotation.XmlType;
* &lt;/complexContent> * &lt;/complexContent>
* &lt;/complexType> * &lt;/complexType>
* </pre> * </pre>
* *
* *
*/ */
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { @XmlType(name = "", propOrder = {
"raceID", "raceID",
"raceType", "raceType",
"creationTimeDate", "creationTimeDate",
"raceStartTime", "raceStartTime",
"participants", "participants",
"compoundMarkSequence", "compoundMarkSequence",
"course", "course",
"courseLimit" "courseLimit"
}) })
@XmlRootElement(name = "Race") @XmlRootElement(name = "Race")
public class Race { public class XMLRace {
@XmlElement(name = "RaceID", required = true) @XmlElement(name = "RaceID")
@XmlSchemaType(name = "positiveInteger") protected int raceID;
protected BigInteger raceID;
@XmlElement(name = "RaceType", required = true) @XmlElement(name = "RaceType", required = true)
protected String raceType; protected String raceType;
@XmlElement(name = "CreationTimeDate", required = true) @XmlElement(name = "CreationTimeDate", required = true)
protected String creationTimeDate; protected String creationTimeDate;
@XmlElement(name = "RaceStartTime", required = true) @XmlElement(name = "RaceStartTime", required = true)
protected RaceStartTime raceStartTime; protected XMLRaceStartTime raceStartTime;
@XmlElement(name = "Participants", required = true) @XmlElement(name = "Participants", required = true)
protected Participants participants; protected XMLParticipants participants;
@XmlElement(name = "CompoundMarkSequence", required = true) @XmlElement(name = "CompoundMarkSequence", required = true)
protected CompoundMarkSequence compoundMarkSequence; protected XMLCompoundMarkSequence compoundMarkSequence;
@XmlElement(name = "Course", required = true) @XmlElement(name = "Course", required = true)
protected Course course; protected XMLCourse course;
@XmlElement(name = "CourseLimit", required = true) @XmlElement(name = "CourseLimit", required = true)
protected CourseLimit courseLimit; protected XMLCourseLimit courseLimit;
/** /**
* Gets the value of the raceID property. * Gets the value of the raceID property.
* *
* @return
* possible object is
* {@link BigInteger }
*
*/ */
public BigInteger getRaceID() { public int getRaceID() {
return raceID; return raceID;
} }
/** /**
* Sets the value of the raceID property. * Sets the value of the raceID property.
* *
* @param value
* allowed object is
* {@link BigInteger }
*
*/ */
public void setRaceID(BigInteger value) { public void setRaceID(int value) {
this.raceID = value; this.raceID = value;
} }
/** /**
* Gets the value of the raceType property. * Gets the value of the raceType property.
* *
* @return * @return
* possible object is * possible object is
* {@link String } * {@link String }
* *
*/ */
public String getRaceType() { public String getRaceType() {
return raceType; return raceType;
@ -216,11 +205,11 @@ public class Race {
/** /**
* Sets the value of the raceType property. * Sets the value of the raceType property.
* *
* @param value * @param value
* allowed object is * allowed object is
* {@link String } * {@link String }
* *
*/ */
public void setRaceType(String value) { public void setRaceType(String value) {
this.raceType = value; this.raceType = value;
@ -228,11 +217,11 @@ public class Race {
/** /**
* Gets the value of the creationTimeDate property. * Gets the value of the creationTimeDate property.
* *
* @return * @return
* possible object is * possible object is
* {@link String } * {@link String }
* *
*/ */
public String getCreationTimeDate() { public String getCreationTimeDate() {
return creationTimeDate; return creationTimeDate;
@ -240,11 +229,11 @@ public class Race {
/** /**
* Sets the value of the creationTimeDate property. * Sets the value of the creationTimeDate property.
* *
* @param value * @param value
* allowed object is * allowed object is
* {@link String } * {@link String }
* *
*/ */
public void setCreationTimeDate(String value) { public void setCreationTimeDate(String value) {
this.creationTimeDate = value; this.creationTimeDate = value;
@ -252,121 +241,121 @@ public class Race {
/** /**
* Gets the value of the raceStartTime property. * Gets the value of the raceStartTime property.
* *
* @return * @return
* possible object is * possible object is
* {@link RaceStartTime } * {@link XMLRaceStartTime }
* *
*/ */
public RaceStartTime getRaceStartTime() { public XMLRaceStartTime getRaceStartTime() {
return raceStartTime; return raceStartTime;
} }
/** /**
* Sets the value of the raceStartTime property. * Sets the value of the raceStartTime property.
* *
* @param value * @param value
* allowed object is * allowed object is
* {@link RaceStartTime } * {@link XMLRaceStartTime }
* *
*/ */
public void setRaceStartTime(RaceStartTime value) { public void setRaceStartTime(XMLRaceStartTime value) {
this.raceStartTime = value; this.raceStartTime = value;
} }
/** /**
* Gets the value of the participants property. * Gets the value of the participants property.
* *
* @return * @return
* possible object is * possible object is
* {@link Participants } * {@link XMLParticipants }
* *
*/ */
public Participants getParticipants() { public XMLParticipants getParticipants() {
return participants; return participants;
} }
/** /**
* Sets the value of the participants property. * Sets the value of the participants property.
* *
* @param value * @param value
* allowed object is * allowed object is
* {@link Participants } * {@link XMLParticipants }
* *
*/ */
public void setParticipants(Participants value) { public void setParticipants(XMLParticipants value) {
this.participants = value; this.participants = value;
} }
/** /**
* Gets the value of the compoundMarkSequence property. * Gets the value of the compoundMarkSequence property.
* *
* @return * @return
* possible object is * possible object is
* {@link CompoundMarkSequence } * {@link XMLCompoundMarkSequence }
* *
*/ */
public CompoundMarkSequence getCompoundMarkSequence() { public XMLCompoundMarkSequence getCompoundMarkSequence() {
return compoundMarkSequence; return compoundMarkSequence;
} }
/** /**
* Sets the value of the compoundMarkSequence property. * Sets the value of the compoundMarkSequence property.
* *
* @param value * @param value
* allowed object is * allowed object is
* {@link CompoundMarkSequence } * {@link XMLCompoundMarkSequence }
* *
*/ */
public void setCompoundMarkSequence(CompoundMarkSequence value) { public void setCompoundMarkSequence(XMLCompoundMarkSequence value) {
this.compoundMarkSequence = value; this.compoundMarkSequence = value;
} }
/** /**
* Gets the value of the course property. * Gets the value of the course property.
* *
* @return * @return
* possible object is * possible object is
* {@link Course } * {@link XMLCourse }
* *
*/ */
public Course getCourse() { public XMLCourse getCourse() {
return course; return course;
} }
/** /**
* Sets the value of the course property. * Sets the value of the course property.
* *
* @param value * @param value
* allowed object is * allowed object is
* {@link Course } * {@link XMLCourse }
* *
*/ */
public void setCourse(Course value) { public void setCourse(XMLCourse value) {
this.course = value; this.course = value;
} }
/** /**
* Gets the value of the courseLimit property. * Gets the value of the courseLimit property.
* *
* @return * @return
* possible object is * possible object is
* {@link CourseLimit } * {@link XMLCourseLimit }
* *
*/ */
public CourseLimit getCourseLimit() { public XMLCourseLimit getCourseLimit() {
return courseLimit; return courseLimit;
} }
/** /**
* Sets the value of the courseLimit property. * Sets the value of the courseLimit property.
* *
* @param value * @param value
* allowed object is * allowed object is
* {@link CourseLimit } * {@link XMLCourseLimit }
* *
*/ */
public void setCourseLimit(CourseLimit value) { public void setCourseLimit(XMLCourseLimit value) {
this.courseLimit = value; this.courseLimit = value;
} }

@ -0,0 +1,127 @@
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.14 at 02:41:51 AM NZST
//
package shared.xml.Race;
import javax.xml.bind.annotation.XmlRegistry;
/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the shared.xml.Race package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRegistry
public class XMLRaceFactory {
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: shared.xml.Race
*
*/
public XMLRaceFactory() {
}
/**
* Create an instance of {@link XMLRace }
*
*/
public XMLRace createRace() {
return new XMLRace();
}
/**
* Create an instance of {@link XMLRaceStartTime }
*
*/
public XMLRaceStartTime createXMLRaceStartTime() {
return new XMLRaceStartTime();
}
/**
* Create an instance of {@link XMLParticipants }
*
*/
public XMLParticipants createXMLParticipants() {
return new XMLParticipants();
}
/**
* Create an instance of {@link XMLCompoundMarkSequence }
*
*/
public XMLCompoundMarkSequence createXMLCompoundMarkSequence() {
return new XMLCompoundMarkSequence();
}
/**
* Create an instance of {@link XMLCourse }
*
*/
public XMLCourse createXMLCourse() {
return new XMLCourse();
}
/**
* Create an instance of {@link XMLCourseLimit }
*
*/
public XMLCourseLimit createXMLCourseLimit() {
return new XMLCourseLimit();
}
/**
* Create an instance of {@link XMLLimit }
*
*/
public XMLLimit createXMLLimit() {
return new XMLLimit();
}
/**
* Create an instance of {@link XMLCompoundMark }
*
*/
public XMLCompoundMark createXMLCompoundMark() {
return new XMLCompoundMark();
}
/**
* Create an instance of {@link XMLMark }
*
*/
public XMLMark createXMLMark() {
return new XMLMark();
}
/**
* Create an instance of {@link XMLCorner }
*
*/
public XMLCorner createXMLCorner() {
return new XMLCorner();
}
/**
* Create an instance of {@link XMLYacht }
*
*/
public XMLYacht createXMLYacht() {
return new XMLYacht();
}
}

@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 02:54:32 AM NZST
// //
package schema; package shared.xml.Race;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
@ -34,7 +34,7 @@ import javax.xml.bind.annotation.XmlType;
*/ */
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "") @XmlType(name = "")
public class RaceStartTime { public class XMLRaceStartTime {
@XmlAttribute(name = "Postpone", required = true) @XmlAttribute(name = "Postpone", required = true)
protected String postpone; protected String postpone;

@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema. // Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST // Generated on: 2017.08.14 at 02:54:32 AM NZST
// //
package schema; package shared.xml.Race;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
@ -23,7 +23,7 @@ import javax.xml.bind.annotation.XmlType;
* &lt;complexType> * &lt;complexType>
* &lt;complexContent> * &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="SourceID" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
* &lt;attribute name="Entry" type="{http://www.w3.org/2001/XMLSchema}string" /> * &lt;attribute name="Entry" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/restriction> * &lt;/restriction>
* &lt;/complexContent> * &lt;/complexContent>
@ -34,34 +34,26 @@ import javax.xml.bind.annotation.XmlType;
*/ */
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "") @XmlType(name = "")
public class Yacht { public class XMLYacht {
@XmlAttribute(name = "SourceID", required = true) @XmlAttribute(name = "SourceID", required = true)
protected String sourceID; protected int sourceID;
@XmlAttribute(name = "Entry") @XmlAttribute(name = "Entry")
protected String entry; protected String entry;
/** /**
* Gets the value of the sourceID property. * Gets the value of the sourceID property.
* *
* @return
* possible object is
* {@link String }
*
*/ */
public String getSourceID() { public int getSourceID() {
return sourceID; return sourceID;
} }
/** /**
* Sets the value of the sourceID property. * Sets the value of the sourceID property.
* *
* @param value
* allowed object is
* {@link String }
*
*/ */
public void setSourceID(String value) { public void setSourceID(int value) {
this.sourceID = value; this.sourceID = value;
} }

@ -3,6 +3,7 @@ package shared.xml;
import mock.xml.Race; import mock.xml.Race;
import mock.xml.RaceXMLCreator; import mock.xml.RaceXMLCreator;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import javax.xml.XMLConstants; import javax.xml.XMLConstants;
@ -17,6 +18,7 @@ import javax.xml.transform.dom.DOMSource;
import javax.xml.validation.Schema; import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory; import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator; import javax.xml.validation.Validator;
import java.io.ByteArrayInputStream;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.StringWriter; import java.io.StringWriter;
@ -47,7 +49,7 @@ public class XMLUtilities {
public static Object xmlToClass(String xml, URL schemaURL, Class c) throws ParserConfigurationException, IOException, SAXException, JAXBException { public static Object xmlToClass(String xml, URL schemaURL, Class c) throws ParserConfigurationException, IOException, SAXException, JAXBException {
DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder(); DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = parser.parse(xml); Document document = parser.parse(new InputSource(new ByteArrayInputStream(xml.getBytes("utf-8"))));
return xmlToClass(document, schemaURL, c); return xmlToClass(document, schemaURL, c);
} }

@ -6,12 +6,15 @@ import javafx.fxml.FXML;
import javafx.scene.control.*; import javafx.scene.control.*;
import javafx.scene.layout.AnchorPane; import javafx.scene.layout.AnchorPane;
import mock.app.Event; import mock.app.Event;
import org.xml.sax.SAXException;
import shared.exceptions.InvalidBoatDataException; import shared.exceptions.InvalidBoatDataException;
import shared.exceptions.InvalidRaceDataException; import shared.exceptions.InvalidRaceDataException;
import shared.exceptions.InvalidRegattaDataException; import shared.exceptions.InvalidRegattaDataException;
import shared.exceptions.XMLReaderException; import shared.exceptions.XMLReaderException;
import visualiser.model.RaceConnection; import visualiser.model.RaceConnection;
import javax.xml.bind.JAXBException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.soap.Text; import javax.xml.soap.Text;
import java.io.IOException; import java.io.IOException;
import java.net.Socket; import java.net.Socket;
@ -170,6 +173,14 @@ public class ConnectionController extends Controller {
e.printStackTrace(); e.printStackTrace();
} catch (UnknownHostException e) { } catch (UnknownHostException e) {
e.printStackTrace(); e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JAXBException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} }
} }
} }

@ -6,12 +6,15 @@ import javafx.scene.control.*;
import javafx.scene.layout.AnchorPane; import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage; import javafx.stage.Stage;
import mock.app.Event; import mock.app.Event;
import org.xml.sax.SAXException;
import shared.exceptions.InvalidBoatDataException; import shared.exceptions.InvalidBoatDataException;
import shared.exceptions.InvalidRaceDataException; import shared.exceptions.InvalidRaceDataException;
import shared.exceptions.InvalidRegattaDataException; import shared.exceptions.InvalidRegattaDataException;
import shared.exceptions.XMLReaderException; import shared.exceptions.XMLReaderException;
import visualiser.model.RaceConnection; import visualiser.model.RaceConnection;
import javax.xml.bind.JAXBException;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException; import java.io.IOException;
import java.net.Socket; import java.net.Socket;
import java.net.URL; import java.net.URL;
@ -55,6 +58,12 @@ public class HostController extends Controller {
e.printStackTrace(); e.printStackTrace();
} catch (InvalidRegattaDataException e) { } catch (InvalidRegattaDataException e) {
e.printStackTrace(); e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (JAXBException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} }
} }

@ -0,0 +1,17 @@
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jxb:extensionBindingPrefixes="xjc">
<jxb:bindings schemaLocation="raceSchema.xsd" node="/xs:schema">
<jxb:schemaBindings>
<jxb:nameXmlTransform>
<jxb:typeName prefix="XML"/>
<jxb:anonymousTypeName prefix="XML"/>
</jxb:nameXmlTransform>
</jxb:schemaBindings>
<jxb:globalBindings localScoping="toplevel"/>
</jxb:bindings>
</jxb:bindings>

@ -1,127 +0,0 @@
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:00:04 PM NZST
//
package generated;
import javax.xml.bind.annotation.XmlRegistry;
/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the generated package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRegistry
public class ObjectFactory {
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: generated
*
*/
public ObjectFactory() {
}
/**
* Create an instance of {@link Race }
*
*/
public Race createRace() {
return new Race();
}
/**
* Create an instance of {@link Race.CourseLimit }
*
*/
public Race.CourseLimit createRaceCourseLimit() {
return new Race.CourseLimit();
}
/**
* Create an instance of {@link Race.Course }
*
*/
public Race.Course createRaceCourse() {
return new Race.Course();
}
/**
* Create an instance of {@link Race.Course.CompoundMark }
*
*/
public Race.Course.CompoundMark createRaceCourseCompoundMark() {
return new Race.Course.CompoundMark();
}
/**
* Create an instance of {@link Race.CompoundMarkSequence }
*
*/
public Race.CompoundMarkSequence createRaceCompoundMarkSequence() {
return new Race.CompoundMarkSequence();
}
/**
* Create an instance of {@link Race.Participants }
*
*/
public Race.Participants createRaceParticipants() {
return new Race.Participants();
}
/**
* Create an instance of {@link Race.RaceStartTime }
*
*/
public Race.RaceStartTime createRaceRaceStartTime() {
return new Race.RaceStartTime();
}
/**
* Create an instance of {@link Race.CourseLimit.Limit }
*
*/
public Race.CourseLimit.Limit createRaceCourseLimitLimit() {
return new Race.CourseLimit.Limit();
}
/**
* Create an instance of {@link Race.Course.CompoundMark.Mark }
*
*/
public Race.Course.CompoundMark.Mark createRaceCourseCompoundMarkMark() {
return new Race.Course.CompoundMark.Mark();
}
/**
* Create an instance of {@link Race.CompoundMarkSequence.Corner }
*
*/
public Race.CompoundMarkSequence.Corner createRaceCompoundMarkSequenceCorner() {
return new Race.CompoundMarkSequence.Corner();
}
/**
* Create an instance of {@link Race.Participants.Yacht }
*
*/
public Race.Participants.Yacht createRaceParticipantsYacht() {
return new Race.Participants.Yacht();
}
}

@ -3,7 +3,7 @@
<xs:element name="Race"> <xs:element name="Race">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="RaceID" type="xs:positiveInteger"/> <xs:element name="RaceID" type="xs:int"/>
<xs:element name="RaceType" type="xs:string"/> <xs:element name="RaceType" type="xs:string"/>
<xs:element name="CreationTimeDate" type="xs:string"/> <xs:element name="CreationTimeDate" type="xs:string"/>
<xs:element name="RaceStartTime"> <xs:element name="RaceStartTime">
@ -17,7 +17,7 @@
<xs:sequence> <xs:sequence>
<xs:element name="Yacht" maxOccurs="unbounded"> <xs:element name="Yacht" maxOccurs="unbounded">
<xs:complexType> <xs:complexType>
<xs:attribute name="SourceID" type="xs:string" use="required"/> <xs:attribute name="SourceID" type="xs:int" use="required"/>
<xs:attribute name="Entry" type="xs:string"/> <xs:attribute name="Entry" type="xs:string"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@ -29,10 +29,10 @@
<xs:sequence> <xs:sequence>
<xs:element name="Corner" maxOccurs="unbounded"> <xs:element name="Corner" maxOccurs="unbounded">
<xs:complexType> <xs:complexType>
<xs:attribute name="CompoundMarkID" type="xs:positiveInteger" use="required"/> <xs:attribute name="CompoundMarkID" type="xs:int" use="required"/>
<xs:attribute name="SeqID" type="xs:positiveInteger" use="required"/> <xs:attribute name="SeqID" type="xs:int" use="required"/>
<xs:attribute name="Rounding" type="xs:string" use="required"/> <xs:attribute name="Rounding" type="xs:string" use="required"/>
<xs:attribute name="ZoneSize" type="xs:positiveInteger" use="required"/> <xs:attribute name="ZoneSize" type="xs:int" use="required"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
</xs:sequence> </xs:sequence>
@ -46,15 +46,15 @@
<xs:sequence> <xs:sequence>
<xs:element name="Mark" maxOccurs="unbounded"> <xs:element name="Mark" maxOccurs="unbounded">
<xs:complexType> <xs:complexType>
<xs:attribute name="SeqId" type="xs:string"/> <xs:attribute name="SeqId" type="xs:int"/>
<xs:attribute name="Name" type="xs:string" use="required"/> <xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="TargetLat" type="xs:string" use="required"/> <xs:attribute name="TargetLat" type="xs:double" use="required"/>
<xs:attribute name="TargetLng" type="xs:string" use="required"/> <xs:attribute name="TargetLng" type="xs:double" use="required"/>
<xs:attribute name="SourceID" type="xs:string" use="required"/> <xs:attribute name="SourceID" type="xs:int" use="required"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
</xs:sequence> </xs:sequence>
<xs:attribute name="CompoundMarkID" type="xs:string" use="required"/> <xs:attribute name="CompoundMarkID" type="xs:int" use="required"/>
<xs:attribute name="Name" type="xs:string" use="required"/> <xs:attribute name="Name" type="xs:string" use="required"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@ -66,9 +66,9 @@
<xs:sequence> <xs:sequence>
<xs:element name="Limit" maxOccurs="unbounded"> <xs:element name="Limit" maxOccurs="unbounded">
<xs:complexType> <xs:complexType>
<xs:attribute name="Lat" type="xs:string" use="required"/> <xs:attribute name="Lat" type="xs:double" use="required"/>
<xs:attribute name="Lon" type="xs:string" use="required"/> <xs:attribute name="Lon" type="xs:double" use="required"/>
<xs:attribute name="SeqID" type="xs:string" use="required"/> <xs:attribute name="SeqID" type="xs:int" use="required"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
</xs:sequence> </xs:sequence>

@ -1,127 +0,0 @@
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 10:39:29 PM NZST
//
package scd;
import javax.xml.bind.annotation.XmlRegistry;
/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the scd package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRegistry
public class ObjectFactory {
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: scd
*
*/
public ObjectFactory() {
}
/**
* Create an instance of {@link Race }
*
*/
public Race createRace() {
return new Race();
}
/**
* Create an instance of {@link Race.CourseLimit }
*
*/
public Race.CourseLimit createRaceCourseLimit() {
return new Race.CourseLimit();
}
/**
* Create an instance of {@link Race.Course }
*
*/
public Race.Course createRaceCourse() {
return new Race.Course();
}
/**
* Create an instance of {@link Race.Course.CompoundMark }
*
*/
public Race.Course.CompoundMark createRaceCourseCompoundMark() {
return new Race.Course.CompoundMark();
}
/**
* Create an instance of {@link Race.CompoundMarkSequence }
*
*/
public Race.CompoundMarkSequence createRaceCompoundMarkSequence() {
return new Race.CompoundMarkSequence();
}
/**
* Create an instance of {@link Race.Participants }
*
*/
public Race.Participants createRaceParticipants() {
return new Race.Participants();
}
/**
* Create an instance of {@link Race.RaceStartTime }
*
*/
public Race.RaceStartTime createRaceRaceStartTime() {
return new Race.RaceStartTime();
}
/**
* Create an instance of {@link Race.CourseLimit.Limit }
*
*/
public Race.CourseLimit.Limit createRaceCourseLimitLimit() {
return new Race.CourseLimit.Limit();
}
/**
* Create an instance of {@link Race.Course.CompoundMark.Mark }
*
*/
public Race.Course.CompoundMark.Mark createRaceCourseCompoundMarkMark() {
return new Race.Course.CompoundMark.Mark();
}
/**
* Create an instance of {@link Race.CompoundMarkSequence.Corner }
*
*/
public Race.CompoundMarkSequence.Corner createRaceCompoundMarkSequenceCorner() {
return new Race.CompoundMarkSequence.Corner();
}
/**
* Create an instance of {@link Race.Participants.Yacht }
*
*/
public Race.Participants.Yacht createRaceParticipantsYacht() {
return new Race.Participants.Yacht();
}
}

@ -1,127 +0,0 @@
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.08.13 at 11:01:23 PM NZST
//
package schema;
import javax.xml.bind.annotation.XmlRegistry;
/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the schema package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRegistry
public class ObjectFactory {
/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: schema
*
*/
public ObjectFactory() {
}
/**
* Create an instance of {@link Race }
*
*/
public Race createRace() {
return new Race();
}
/**
* Create an instance of {@link RaceStartTime }
*
*/
public RaceStartTime createRaceStartTime() {
return new RaceStartTime();
}
/**
* Create an instance of {@link Participants }
*
*/
public Participants createParticipants() {
return new Participants();
}
/**
* Create an instance of {@link CompoundMarkSequence }
*
*/
public CompoundMarkSequence createCompoundMarkSequence() {
return new CompoundMarkSequence();
}
/**
* Create an instance of {@link Course }
*
*/
public Course createCourse() {
return new Course();
}
/**
* Create an instance of {@link CourseLimit }
*
*/
public CourseLimit createCourseLimit() {
return new CourseLimit();
}
/**
* Create an instance of {@link Limit }
*
*/
public Limit createLimit() {
return new Limit();
}
/**
* Create an instance of {@link CompoundMark }
*
*/
public CompoundMark createCompoundMark() {
return new CompoundMark();
}
/**
* Create an instance of {@link Mark }
*
*/
public Mark createMark() {
return new Mark();
}
/**
* Create an instance of {@link Corner }
*
*/
public Corner createCorner() {
return new Corner();
}
/**
* Create an instance of {@link Yacht }
*
*/
public Yacht createYacht() {
return new Yacht();
}
}
Loading…
Cancel
Save