diff --git a/07/src/main/java/ch/zhaw/ads/AdjListGraph.java b/07/src/main/java/ch/zhaw/ads/AdjListGraph.java index c764693..17588f3 100644 --- a/07/src/main/java/ch/zhaw/ads/AdjListGraph.java +++ b/07/src/main/java/ch/zhaw/ads/AdjListGraph.java @@ -51,4 +51,4 @@ public class AdjListGraph public Iterable getNodes() { return nodes; } -} \ No newline at end of file +} diff --git a/07/src/main/java/ch/zhaw/ads/RouteServer.java b/07/src/main/java/ch/zhaw/ads/RouteServer.java new file mode 100644 index 0000000..653f2c5 --- /dev/null +++ b/07/src/main/java/ch/zhaw/ads/RouteServer.java @@ -0,0 +1,40 @@ +package ch.zhaw.ads; + +import java.util.Scanner; + +public class RouteServer implements CommandExecutor { + + @Override + public String execute(String command) { + Graph graph = this.readInput(command); + StringBuffer result = new StringBuffer(100); + for (Node node : graph.getNodes()) { + result.append(node.getName() + "\n"); + } + result.append("\"\n"); + return result.toString(); + } + + private Graph readInput(String input) { + int dist; + String line, src, dest; + String[] values; + + Scanner scanner = new Scanner(input); + Graph graph = new AdjListGraph(DijkstraNode.class, Edge.class); + while (scanner.hasNextLine()) { + line = scanner.nextLine(); + + try { + values = line.split(" "); + graph.addEdge(values[0], values[1], Integer.valueOf(values[2])); + graph.addEdge(values[1], values[0], Integer.valueOf(values[2])); + } catch (Throwable e) { + System.err.println("Error."); + continue; + } + } + scanner.close(); + return graph; + } +} diff --git a/07/src/test/java/ch/zhaw/ads/RouteServerTest.java b/07/src/test/java/ch/zhaw/ads/RouteServerTest.java new file mode 100644 index 0000000..05eeacc --- /dev/null +++ b/07/src/test/java/ch/zhaw/ads/RouteServerTest.java @@ -0,0 +1,38 @@ +package ch.zhaw.ads; + +import org.junit.Test; +import org.junit.Before; +import static org.junit.Assert.*; +import java.util.*; +import java.io.*; + +public class RouteServerTest { + + RouteServer routeServer; + String input; + + @Before + public void setUp() throws Exception { + routeServer = new RouteServer(); + input = openFile("./build/resources/main/Swiss.txt"); + } + + @Test + public void test1() { + System.out.println(routeServer.execute(input)); + } + + // helper functions + private String openFile(String name) throws Exception { + BufferedReader br = new BufferedReader( + new InputStreamReader(new FileInputStream(name), "ISO-8859-1")); + StringBuffer b = new StringBuffer(); + String line; + while ((line = br.readLine()) != null) { + b.append(line); + b.append('\n'); + } + return b.toString(); + } +} +