annotate src/main/java/christie/topology/manager/FileParser.java @ 94:87a203c99177

update HostMessage refactor
author akahori
date Sat, 15 Sep 2018 18:59:12 +0900
parents 7abfe041b75c
children ce96f375f369
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
73
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
1 package christie.topology.manager;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
2
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
3 import christie.annotation.Peek;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
4 import christie.codegear.CodeGear;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
5 import christie.codegear.CodeGearManager;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
6
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
7 import java.io.File;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
8 import java.io.FileNotFoundException;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
9 import java.io.FileReader;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
10 import java.util.ArrayList;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
11 import java.util.HashMap;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
12 import java.util.LinkedList;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
13
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
14 import christie.topology.HostMessage;
73
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
15 import com.alexmerz.graphviz.ParseException;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
16 import com.alexmerz.graphviz.Parser;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
17 import com.alexmerz.graphviz.objects.*;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
18
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
19 public class FileParser extends CodeGear {
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
20
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
21 @Peek
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
22 TopologyManagerConfig topologyManagerConfig;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
23
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
24 @Override
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
25 protected void run(CodeGearManager cgm) {
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
26 LinkedList<String> nodeNames = new LinkedList<>();
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
27 HashMap<String, LinkedList<HostMessage>> resultParse = new HashMap<>();
73
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
28 int nodeNum = 0;
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
29
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
30 try {
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
31 FileReader reader = new FileReader(new File(topologyManagerConfig.confFilePath));
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
32 Parser parser = new Parser();
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
33 parser.parse(reader);
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
34
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
35
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
36 ArrayList<Graph> digraphs = parser.getGraphs();
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
37
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
38
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
39 for (Graph digraph : digraphs) {
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
40 ArrayList<Node> nodes = digraph.getNodes(false);
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
41 nodeNum = nodes.size();
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
42
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
43 for (Node node : nodes) {
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
44 String nodeName = node.getId().getId();
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
45 nodeNames.add(nodeName);
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
46 resultParse.put(nodeName, new LinkedList<>());
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
47 }
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
48
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
49 ArrayList<Edge> edges = digraph.getEdges();
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
50
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
51 for (Edge edge : edges) {
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
52 HostMessage nodeInfo = new HostMessage();
73
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
53
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
54 nodeInfo.setNodeInfo(edge.getSource().getNode().getId().getId(),
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
55 edge.getAttribute("label"),
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
56 edge.getTarget().getNode().getId().getId());
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
57 resultParse.get(nodeInfo.getNodeName()).add(nodeInfo);
73
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
58 }
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
59 }
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
60
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
61 } catch (FileNotFoundException e) {
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
62 e.printStackTrace();
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
63 } catch (ParseException e) {
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
64 e.printStackTrace();
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
65 }
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
66
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
67 getLocalDGM().put("resultParse", resultParse);
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
68 getLocalDGM().put("nodeNum", nodeNum);
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
69 getLocalDGM().put("nodeNames", nodeNames);
74
e2ce8038815a fix FileParser
akahori
parents: 73
diff changeset
70 getLocalDGM().put("waiterNodeNames", nodeNames.clone());
e2ce8038815a fix FileParser
akahori
parents: 73
diff changeset
71
73
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
72
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
73
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
74 }
f1f34c3e33d4 add FileParser.java
akahori
parents:
diff changeset
75 }