mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +00:00
Merged the refactored mark related class with course parser.
#fix #refactor #story[9] #story[10] #story[11]
This commit is contained in:
@@ -1,8 +1,7 @@
|
|||||||
package seng302.models.parsers;
|
package seng302.models.parsers;
|
||||||
|
|
||||||
import org.w3c.dom.*;
|
import org.w3c.dom.*;
|
||||||
import seng302.models.GateMark;
|
import seng302.models.mark.*;
|
||||||
import seng302.models.Mark;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
@@ -26,15 +25,15 @@ public class CourseParser extends FileParser {
|
|||||||
* @param node
|
* @param node
|
||||||
* @return a mark, or null if fails to create a mark
|
* @return a mark, or null if fails to create a mark
|
||||||
*/
|
*/
|
||||||
private Mark generateMark(Node node) {
|
private SingleMark generateSingleMark(Node node) {
|
||||||
try {
|
try {
|
||||||
if (node.getNodeType() == Node.ELEMENT_NODE) {
|
if (node.getNodeType() == Node.ELEMENT_NODE) {
|
||||||
Element element = (Element) node;
|
Element element = (Element) node;
|
||||||
String name = element.getElementsByTagName("name").item(0).getTextContent();
|
String name = element.getElementsByTagName("name").item(0).getTextContent();
|
||||||
double lat = Double.valueOf(element.getElementsByTagName("latitude").item(0).getTextContent());
|
double lat = Double.valueOf(element.getElementsByTagName("latitude").item(0).getTextContent());
|
||||||
double lon = Double.valueOf(element.getElementsByTagName("longitude").item(0).getTextContent());
|
double lon = Double.valueOf(element.getElementsByTagName("longitude").item(0).getTextContent());
|
||||||
Mark mark = new Mark(name, lat, lon);
|
SingleMark singleMark = new SingleMark(name, lat, lon);
|
||||||
return mark;
|
return singleMark;
|
||||||
} else {
|
} else {
|
||||||
throw new NoSuchElementException("Cannot generate a mark by given node.");
|
throw new NoSuchElementException("Cannot generate a mark by given node.");
|
||||||
}
|
}
|
||||||
@@ -49,7 +48,7 @@ public class CourseParser extends FileParser {
|
|||||||
*
|
*
|
||||||
* @return an arrayList of gates, or null if no gate has been found.
|
* @return an arrayList of gates, or null if no gate has been found.
|
||||||
*/
|
*/
|
||||||
public ArrayList<GateMark> getGates() {
|
public ArrayList<GateMark> getGateMarks() {
|
||||||
ArrayList<GateMark> gateMarks = new ArrayList<>();
|
ArrayList<GateMark> gateMarks = new ArrayList<>();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -61,8 +60,8 @@ public class CourseParser extends FileParser {
|
|||||||
if (node.getNodeType() == Node.ELEMENT_NODE) {
|
if (node.getNodeType() == Node.ELEMENT_NODE) {
|
||||||
Element element = (Element) node;
|
Element element = (Element) node;
|
||||||
String name = element.getElementsByTagName("name").item(0).getTextContent();
|
String name = element.getElementsByTagName("name").item(0).getTextContent();
|
||||||
Mark mark1 = generateMark(element.getElementsByTagName("mark").item(0));
|
SingleMark mark1 = generateSingleMark(element.getElementsByTagName("mark").item(0));
|
||||||
Mark mark2 = generateMark(element.getElementsByTagName("mark").item(1));
|
SingleMark mark2 = generateSingleMark(element.getElementsByTagName("mark").item(1));
|
||||||
GateMark gateMark = new GateMark(name, mark1, mark2);
|
GateMark gateMark = new GateMark(name, mark1, mark2);
|
||||||
gateMarks.add(gateMark);
|
gateMarks.add(gateMark);
|
||||||
}
|
}
|
||||||
@@ -78,8 +77,8 @@ public class CourseParser extends FileParser {
|
|||||||
*
|
*
|
||||||
* @return an arrayList of marks, or null if no gate has been found.
|
* @return an arrayList of marks, or null if no gate has been found.
|
||||||
*/
|
*/
|
||||||
public ArrayList<Mark> getMarks() {
|
public ArrayList<SingleMark> getSingleMarks() {
|
||||||
ArrayList<Mark> marks = new ArrayList<>();
|
ArrayList<SingleMark> singleMarks = new ArrayList<>();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// find the "marks" tag
|
// find the "marks" tag
|
||||||
@@ -90,11 +89,11 @@ public class CourseParser extends FileParser {
|
|||||||
if (n.getNodeType() == Node.ELEMENT_NODE) {
|
if (n.getNodeType() == Node.ELEMENT_NODE) {
|
||||||
Element element = (Element) n;
|
Element element = (Element) n;
|
||||||
if (element.getNodeName() == "mark") {
|
if (element.getNodeName() == "mark") {
|
||||||
marks.add(generateMark(n));
|
singleMarks.add(generateSingleMark(n));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return marks;
|
return singleMarks;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -2,8 +2,7 @@ package seng302.models.parsers;
|
|||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import seng302.models.GateMark;
|
import seng302.models.mark.*;
|
||||||
import seng302.models.Mark;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
@@ -24,7 +23,7 @@ public class CourseParserTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getGates() throws Exception {
|
public void getGates() throws Exception {
|
||||||
ArrayList<GateMark> gateMarks = cp.getGates();
|
ArrayList<GateMark> gateMarks = cp.getGateMarks();
|
||||||
assertEquals(4, gateMarks.size());
|
assertEquals(4, gateMarks.size());
|
||||||
|
|
||||||
assertEquals("Start", gateMarks.get(0).getName());
|
assertEquals("Start", gateMarks.get(0).getName());
|
||||||
@@ -32,20 +31,20 @@ public class CourseParserTest {
|
|||||||
assertEquals("Windward Gate", gateMarks.get(2).getName());
|
assertEquals("Windward Gate", gateMarks.get(2).getName());
|
||||||
assertEquals("Finish", gateMarks.get(3).getName());
|
assertEquals("Finish", gateMarks.get(3).getName());
|
||||||
|
|
||||||
assertEquals("Start1", gateMarks.get(0).getMark1().getName());
|
assertEquals("Start1", gateMarks.get(0).getSingleMark1().getName());
|
||||||
assertEquals("Start2", gateMarks.get(0).getMark2().getName());
|
assertEquals("Start2", gateMarks.get(0).getSingleMark2().getName());
|
||||||
assertEquals(32.293834, gateMarks.get(0).getMark2().getLatitude(), 0.00000001);
|
assertEquals(32.293834, gateMarks.get(0).getSingleMark2().getLatitude(), 0.00000001);
|
||||||
assertEquals(-64.855195, gateMarks.get(0).getMark2().getLongitude(), 0.00000001);
|
assertEquals(-64.855195, gateMarks.get(0).getSingleMark2().getLongitude(), 0.00000001);
|
||||||
|
|
||||||
assertEquals("Finish1", gateMarks.get(3).getMark1().getName());
|
assertEquals("Finish1", gateMarks.get(3).getSingleMark1().getName());
|
||||||
assertEquals("Finish2", gateMarks.get(3).getMark2().getName());
|
assertEquals("Finish2", gateMarks.get(3).getSingleMark2().getName());
|
||||||
assertEquals(32.318303, gateMarks.get(3).getMark2().getLatitude(), 0.00000001);
|
assertEquals(32.318303, gateMarks.get(3).getSingleMark2().getLatitude(), 0.00000001);
|
||||||
assertEquals(-64.834974, gateMarks.get(3).getMark2().getLongitude(), 0.00000001);
|
assertEquals(-64.834974, gateMarks.get(3).getSingleMark2().getLongitude(), 0.00000001);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getMarks() throws Exception {
|
public void getMarks() throws Exception {
|
||||||
ArrayList<Mark> marks = cp.getMarks();
|
ArrayList<SingleMark> marks = cp.getSingleMarks();
|
||||||
assertEquals(1, marks.size());
|
assertEquals(1, marks.size());
|
||||||
assertEquals("Mid Mark", marks.get(0).getName());
|
assertEquals("Mid Mark", marks.get(0).getName());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user