diff --git a/src/main/java/seng302/models/parsers/StreamParser.java b/src/main/java/seng302/models/parsers/StreamParser.java index 2971e6fd..c4fe3349 100644 --- a/src/main/java/seng302/models/parsers/StreamParser.java +++ b/src/main/java/seng302/models/parsers/StreamParser.java @@ -136,6 +136,11 @@ public class StreamParser { try { db = dbf.newDocumentBuilder(); doc = db.parse(new InputSource(new StringReader(xmlMessage))); + if (xmlMessageSubType == 6) { + System.out.println(xmlMessage); + XMLParser x = new XMLParser(); + XMLParser.RaceXMLObject y = x.createRaceXML(doc); + } } catch (ParserConfigurationException|SAXException|IOException e) { e.printStackTrace(); } diff --git a/src/main/java/seng302/models/parsers/XMLParser.java b/src/main/java/seng302/models/parsers/XMLParser.java index aa9e3a46..ef65ea38 100644 --- a/src/main/java/seng302/models/parsers/XMLParser.java +++ b/src/main/java/seng302/models/parsers/XMLParser.java @@ -166,19 +166,19 @@ class XMLParser { class RaceXMLObject { // Race Info - Integer raceID; - String raceType; - String creationTimeDate; // XML Creation Time + private Integer raceID; + private String raceType; + private String creationTimeDate; // XML Creation Time //Race Start Details - String raceStartTime; - Boolean postponeStatus; + private String raceStartTime; + private Boolean postponeStatus; //Non atomic race attributes - ArrayList participants; - ArrayList course; - ArrayList compoundMarkSequence; - ArrayList courseLimit; + private ArrayList participants; + private ArrayList course; + private ArrayList compoundMarkSequence; + private ArrayList courseLimit; /** * Constructor for a RaceXMLObject. @@ -187,6 +187,17 @@ class XMLParser { */ RaceXMLObject(Document doc) { Element docEle = doc.getDocumentElement(); + + //Atomic and Semi-Atomic Elements + this.raceID = getElementInt(docEle, "RaceID"); + this.raceType = getElementString(docEle, "RaceType"); + this.creationTimeDate = getElementString(docEle, "CreationTimeDate"); + + Node raceStart = docEle.getElementsByTagName("RaceStartTime").item(0); + this.raceStartTime = getNodeAttributeString(raceStart, "Start") ; + this.postponeStatus = Boolean.parseBoolean(getNodeAttributeString(raceStart, "Postpone")); + + //Participants participants = new ArrayList<>(); NodeList pList = docEle.getElementsByTagName("Participants").item(0).getChildNodes(); @@ -207,6 +218,7 @@ class XMLParser { } } + //Course course = new ArrayList<>(); NodeList cMarkList = docEle.getElementsByTagName("Course").item(0).getChildNodes(); @@ -218,6 +230,7 @@ class XMLParser { } } + //Course Mark Sequence compoundMarkSequence = new ArrayList<>(); NodeList cornerList = docEle.getElementsByTagName("CompoundMarkSequence").item(0).getChildNodes(); @@ -229,6 +242,7 @@ class XMLParser { } } + //Course Limits courseLimit = new ArrayList<>(); NodeList limitList = docEle.getElementsByTagName("CourseLimit").item(0).getChildNodes(); @@ -241,6 +255,12 @@ class XMLParser { } } + public Integer getRaceID() { return raceID; } + public String getRaceType() { return raceType; } + public String getCreationTimeDate() { return creationTimeDate; } + public String getRaceStartTime() { return raceStartTime; } + public Boolean getPostponeStatus() { return postponeStatus; } + public ArrayList getParticipants() { return participants; } public ArrayList getCompoundMarks() { return course; } public ArrayList getCompoundMarkSequence() { return compoundMarkSequence; }