Package name changes to reflect functionality differences between Library and Plugin.
[ovsdb.git] / ovsdb / src / main / java / org / opendaylight / ovsdb / lib / database / OVSBridge.java
1 package org.opendaylight.ovsdb.lib.database;\r
2 \r
3 \r
4 import org.opendaylight.ovsdb.plugin.Connection;\r
5 import org.opendaylight.ovsdb.plugin.OvsdbMessage;\r
6 \r
7 import java.util.*;\r
8 \r
9 public class OVSBridge {\r
10 \r
11     private String uuid;\r
12     private String name;\r
13 \r
14     public OVSBridge(String uuid, String name){\r
15         this.uuid = uuid;\r
16         this.name = name;\r
17     }\r
18 \r
19     public String getUuid(){\r
20         return this.uuid;\r
21     }\r
22 \r
23     public String getName(){\r
24         return this.name;\r
25     }\r
26 \r
27     @SuppressWarnings("unchecked")\r
28     public static Map<String, OVSBridge> monitorBridge(Connection connection){\r
29         List<String> columns = new ArrayList<String>();\r
30         columns.add("_uuid");\r
31         columns.add("name");\r
32 \r
33         Map<String, List<String>> row = new HashMap<String, List<String>>();\r
34         row.put("columns", columns);\r
35 \r
36         Map<String, Map> tables = new HashMap<String, Map>();\r
37         tables.put("Bridge", row);\r
38 \r
39         Object[] params = {"Open_vSwitch", null, tables};\r
40 \r
41         OvsdbMessage msg = new OvsdbMessage("monitor", params);\r
42         Map<String, Object> monitorResponse = new HashMap<String, Object>();\r
43 /*\r
44         try{\r
45             connection.sendMessage(msg);\r
46             monitorResponse = (Map<String, Object>) connection.readResponse(Map.class);\r
47         } catch (Throwable e){\r
48             e.printStackTrace();\r
49         }\r
50 */\r
51         Map<String, Object> bridgeTable = (Map) monitorResponse.get("Bridge");\r
52 \r
53         Object[] uuidObjects = bridgeTable.keySet().toArray();\r
54         String[] uuids = Arrays.copyOf(uuidObjects, uuidObjects.length, String[].class);\r
55 \r
56         Map<String, OVSBridge> result = new HashMap<String, OVSBridge>();\r
57 \r
58         for(String uuid : uuids){\r
59             Map<String, Object> newRow = (Map) bridgeTable.get(uuid);\r
60             Map<String, Object> newColumns = (Map) newRow.get("new");\r
61             String name = (String) newColumns.get("name");\r
62             result.put(name, new OVSBridge(uuid, name));\r
63         }\r
64 \r
65         return result;\r
66     }\r
67 }\r