Mercurial > hg > Database > Alice
comparison src/topology/manager/StartTopologyManager.java @ 22:2ca2d961a8d2
implements outline of TopologyManager
author | kazz <kazz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 17 Jan 2012 00:40:27 +0900 |
parents | |
children | ebd91e607b63 |
comparison
equal
deleted
inserted
replaced
21:145667a554ad | 22:2ca2d961a8d2 |
---|---|
1 package topology.manager; | |
2 | |
3 import java.io.File; | |
4 import java.io.FileNotFoundException; | |
5 import java.io.FileReader; | |
6 import java.util.ArrayList; | |
7 import java.util.HashMap; | |
8 import java.util.LinkedList; | |
9 | |
10 import org.apache.log4j.Logger; | |
11 | |
12 import com.alexmerz.graphviz.ParseException; | |
13 import com.alexmerz.graphviz.Parser; | |
14 import com.alexmerz.graphviz.objects.Edge; | |
15 import com.alexmerz.graphviz.objects.Graph; | |
16 import com.alexmerz.graphviz.objects.Node; | |
17 | |
18 import alice.codesegment.CodeSegment; | |
19 | |
20 public class StartTopologyManager extends CodeSegment { | |
21 | |
22 TopologyManagerConfig conf; | |
23 Logger logger = Logger.getLogger(StartTopologyManager.class); | |
24 | |
25 public StartTopologyManager(TopologyManagerConfig conf) { | |
26 conf = this.conf; | |
27 } | |
28 | |
29 @Override | |
30 public void run() { | |
31 LinkedList<String> nodeNames = new LinkedList<String>(); | |
32 HashMap<String, NodeInfo> topology = new HashMap<String, NodeInfo>(); | |
33 try { | |
34 FileReader reader = new FileReader(new File(conf.confFilePath)); | |
35 Parser parser = new Parser(); | |
36 parser.parse(reader); | |
37 ArrayList<Graph> graphs = parser.getGraphs(); | |
38 for (Graph graph : graphs) { | |
39 ArrayList<Node> nodes = graph.getNodes(false); | |
40 for (Node node : nodes) { | |
41 nodeNames.add(node.getId().getId()); | |
42 } | |
43 ArrayList<Edge> edges = graph.getEdges(); | |
44 for (Edge edge : edges) { | |
45 String connection = edge.getAttribute("label"); | |
46 String source = edge.getSource().getNode().getId().getId(); | |
47 String target = edge.getSource().getNode().getId().getId(); | |
48 topology.put(target, new NodeInfo(source, connection)); | |
49 } | |
50 } | |
51 | |
52 } catch (FileNotFoundException e) { | |
53 logger.error("File not found: " + conf.confFilePath); | |
54 e.printStackTrace(); | |
55 } catch (ParseException e) { | |
56 logger.error("File format error: " + conf.confFilePath); | |
57 e.printStackTrace(); | |
58 } | |
59 | |
60 IncomingHosts cs = new IncomingHosts(topology, nodeNames); | |
61 cs.host.setKey("local", "host"); | |
62 } | |
63 | |
64 } |