Merge branch anton with master for v2.0.
[ailab2.git] / src / MapSearcher.java
blob5ecc4523c9c1e5f51612ab441f0b2ed5b93f8ea9
1 import java.io.File;
2 import java.io.IOException;
4 import org.jdom.Document;
5 import org.jdom.JDOMException;
6 import org.jdom.input.SAXBuilder;
8 /**
9 * Abstrakt superklass för alla sökklasser.
11 * @author billing
12 * @author denniso
14 public abstract class MapSearcher {
16 /**
17 * Laddar en XML-fil och returnerar ett DOM-dokument.
18 * Se http://www.jdom.org/ för mer info.
19 * @param srcFile XML-fil med kartan.
20 * @return DOM Document
21 * @throws IOException
22 * @throws JDOMException
25 public static Document loadXmlMap(File srcFile) throws IOException, JDOMException {
26 SAXBuilder builder = new SAXBuilder();
27 Document doc = builder.build(srcFile);
28 return doc;
31 /**
32 * Specifiserar kartan.
34 * Denna metod anropas alltid före sökning och lagrar kartan som ett privat attribut.
35 * Hur kartan representeras är upp till er att specificera.
36 * @param map XML-fil med kartan.
39 abstract public void setMap(File map);
41 /**
42 * Utför sökning med bredden först.
43 * @param from Id för startnod
44 * @param to Id för målnod
45 * @return Sträng som representerar vägen från start till mål.
48 abstract public String breadthFirst(String from,String to);
50 /**
51 * Utför sökning med djupet först.
52 * @param from Id för startnod
53 * @param to Id för målnod
54 * @return Sträng som representerar vägen från start till mål.
57 abstract public String depthFirst(String from,String to);
59 /**
60 * Utför sökning med A*.
61 * @param from Id för startnod
62 * @param to Id för målnod
63 * @param fastest Anger om "snabbaste" eller (om falsk) kortaste vägen söks
64 * @return Sträng som representerar vägen från start till mål.
67 abstract public String aStar(String from,String to,boolean fastest);
69 /**
70 * Utför sökning med Greedy Search.
71 * @param from Id för startnod
72 * @param to Id för målnod
73 * @return Sträng som representerar vägen från start till mål.
76 abstract public String greedySearch(String from,String to);