|
|
|
|
@ -74,7 +74,7 @@ public class RaceXMLCreator {
|
|
|
|
|
* @throws SAXException error in schema file
|
|
|
|
|
* @throws ParserConfigurationException error in parsing the schema file
|
|
|
|
|
*/
|
|
|
|
|
public static String alterRaceToWind(String s, double degrees) throws XMLReaderException, InvalidRaceDataException, JAXBException, IOException, SAXException, ParserConfigurationException {
|
|
|
|
|
public static String alterRaceToWind(String s, double degrees, boolean tutorial) throws XMLReaderException, InvalidRaceDataException, JAXBException, IOException, SAXException, ParserConfigurationException {
|
|
|
|
|
RaceXMLReader reader = new RaceXMLReader(s, XMLFileType.ResourcePath);
|
|
|
|
|
|
|
|
|
|
XMLRace race = XMLUtilities.xmlToClass(
|
|
|
|
|
@ -82,7 +82,11 @@ public class RaceXMLCreator {
|
|
|
|
|
RaceXMLCreator.class.getClassLoader().getResource("mock/mockXML/schema/raceSchema.xsd"),
|
|
|
|
|
XMLRace.class);
|
|
|
|
|
|
|
|
|
|
setRaceXMLAtCurrentTimeToNow(race);
|
|
|
|
|
if(tutorial){
|
|
|
|
|
setRaceXMLAtCurrentTimeToNow(race, 1000l, 5000l);
|
|
|
|
|
} else {
|
|
|
|
|
setRaceXMLAtCurrentTimeToNow(race);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
double raceOriginalBearing = getLineAngle(getLeewardGate(reader).getMark1Position(), getWindwardGate(reader).getMark1Position());
|
|
|
|
|
|
|
|
|
|
@ -93,6 +97,7 @@ public class RaceXMLCreator {
|
|
|
|
|
return XMLUtilities.classToXML(race);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Rotate the features in a race such as the boundary, and the marks.
|
|
|
|
|
* @param race the race to alter
|
|
|
|
|
@ -180,14 +185,11 @@ public class RaceXMLCreator {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
public static void setRaceXMLAtCurrentTimeToNow(XMLRace raceXML) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void setRaceXMLAtCurrentTimeToNow(XMLRace raceXML, long racePrestartTime, long racePreparatoryTime){
|
|
|
|
|
//The start time is current time + 4 minutes. prestart is 3 minutes, and we add another minute.
|
|
|
|
|
long millisecondsToAdd = Constants.RacePreStartTime + Constants.RacePreparatoryTime;
|
|
|
|
|
long millisecondsToAdd = racePrestartTime + racePreparatoryTime;
|
|
|
|
|
long secondsToAdd = millisecondsToAdd / 1000;
|
|
|
|
|
//Scale the time using our time scalar.
|
|
|
|
|
secondsToAdd = secondsToAdd / Constants.RaceTimeScale;
|
|
|
|
|
@ -198,4 +200,13 @@ public class RaceXMLCreator {
|
|
|
|
|
raceXML.getRaceStartTime().setTime(dateFormat.format(creationTime.plusSeconds(secondsToAdd)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 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.
|
|
|
|
|
*/
|
|
|
|
|
public static void setRaceXMLAtCurrentTimeToNow(XMLRace raceXML) {
|
|
|
|
|
setRaceXMLAtCurrentTimeToNow(raceXML, Constants.RacePreStartTime, Constants.RacePreparatoryTime);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|