Added documents for Boat, RaceParser and Simulator classes.

#story[828]
This commit is contained in:
Haoming Yin
2017-04-28 14:53:26 +12:00
parent 705a0a2eaf
commit 8a04a0e5b7
3 changed files with 22 additions and 5 deletions
@@ -11,7 +11,6 @@ public class Boat {
private double speed; // in mm/sec private double speed; // in mm/sec
private String boatName, shortName, shorterName; private String boatName, shortName, shorterName;
// haven't been used so far
private Corner lastPassedCorner, headingCorner; private Corner lastPassedCorner, headingCorner;
public Boat(int sourceID, String boatName) { public Boat(int sourceID, String boatName) {
@@ -62,11 +62,11 @@ public class Simulator extends Observable implements Runnable {
} }
/** /**
* Moves a boat with give time duration. * Moves a boat with given time duration.
* *
* @param boat the boat to be moved * @param boat the boat to be moved
* @param duration the moving duration in millisecond * @param duration the moving duration in milliseconds
* @return 1 if boat reached final line, otherwise 0 * @return 1 if the boat has reached the final line, otherwise return 0
*/ */
private int moveBoat(Boat boat, double duration) { private int moveBoat(Boat boat, double duration) {
if (boat.getHeadingCorner() != null) { if (boat.getHeadingCorner() != null) {
@@ -100,6 +100,11 @@ public class Simulator extends Observable implements Runnable {
return 0; return 0;
} }
/**
* Link all the corners in the course list so that every corner knows its next
* corner, as well as the distance and bearing to its next corner. However,
* the last corner's heading is null, which means it is the final line.
*/
private void setLegs() { private void setLegs() {
// get the bearing from one mark to the next heading mark // get the bearing from one mark to the next heading mark
for (int i = 0; i < course.size() - 1; i++) { for (int i = 0; i < course.size() - 1; i++) {
@@ -9,7 +9,6 @@ import seng302.server.simulator.mark.Corner;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Parses the race xml file to get course details * Parses the race xml file to get course details
@@ -26,11 +25,20 @@ public class RaceParser extends FileParser {
this.doc = this.parseFile(); this.doc = this.parseFile();
} }
/**
* Parses race.xml file and returns a list of corner which is the race course.
* @return a list of ordered corner to represent the course.
*/
public List<Corner> getCourse() { public List<Corner> getCourse() {
CourseParser cp = new CourseParser(path); CourseParser cp = new CourseParser(path);
return cp.getCourse(); return cp.getCourse();
} }
/**
* Parses race.xml file and return a list of boats which will compete in the
* race.
* @return a list of boats that are going to compete in the race.
*/
public List<Boat> getBoats() { public List<Boat> getBoats() {
NodeList yachts = doc.getDocumentElement().getElementsByTagName("Yacht"); NodeList yachts = doc.getDocumentElement().getElementsByTagName("Yacht");
List<Boat> boats = new ArrayList<>(); List<Boat> boats = new ArrayList<>();
@@ -41,6 +49,11 @@ public class RaceParser extends FileParser {
return boats; return boats;
} }
/**
* Parses a single boat from the given node
* @param node a node within a boat tag
* @return a boat instance parsed from the given node
*/
private Boat getBoat(Node node) { private Boat getBoat(Node node) {
if (node.getNodeType() == Node.ELEMENT_NODE) { if (node.getNodeType() == Node.ELEMENT_NODE) {
Element e = (Element) node; Element e = (Element) node;