2 import java
.io
.IOException
;
4 import org
.jdom
.Document
;
5 import org
.jdom
.JDOMException
;
6 import org
.jdom
.input
.SAXBuilder
;
9 * Abstrakt superklass för alla sökklasser.
14 public abstract class MapSearcher
{
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
22 * @throws JDOMException
25 public static Document
loadXmlMap(File srcFile
) throws IOException
, JDOMException
{
26 SAXBuilder builder
= new SAXBuilder();
27 Document doc
= builder
.build(srcFile
);
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
);
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
);
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
);
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
);
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
);