Mercurial > hg > Database > Alice
view 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 |
line wrap: on
line source
package topology.manager; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import org.apache.log4j.Logger; import com.alexmerz.graphviz.ParseException; import com.alexmerz.graphviz.Parser; import com.alexmerz.graphviz.objects.Edge; import com.alexmerz.graphviz.objects.Graph; import com.alexmerz.graphviz.objects.Node; import alice.codesegment.CodeSegment; public class StartTopologyManager extends CodeSegment { TopologyManagerConfig conf; Logger logger = Logger.getLogger(StartTopologyManager.class); public StartTopologyManager(TopologyManagerConfig conf) { conf = this.conf; } @Override public void run() { LinkedList<String> nodeNames = new LinkedList<String>(); HashMap<String, NodeInfo> topology = new HashMap<String, NodeInfo>(); try { FileReader reader = new FileReader(new File(conf.confFilePath)); Parser parser = new Parser(); parser.parse(reader); ArrayList<Graph> graphs = parser.getGraphs(); for (Graph graph : graphs) { ArrayList<Node> nodes = graph.getNodes(false); for (Node node : nodes) { nodeNames.add(node.getId().getId()); } ArrayList<Edge> edges = graph.getEdges(); for (Edge edge : edges) { String connection = edge.getAttribute("label"); String source = edge.getSource().getNode().getId().getId(); String target = edge.getSource().getNode().getId().getId(); topology.put(target, new NodeInfo(source, connection)); } } } catch (FileNotFoundException e) { logger.error("File not found: " + conf.confFilePath); e.printStackTrace(); } catch (ParseException e) { logger.error("File format error: " + conf.confFilePath); e.printStackTrace(); } IncomingHosts cs = new IncomingHosts(topology, nodeNames); cs.host.setKey("local", "host"); } }