ONOS-5450 Initial implementation of OFAgent

- Refactored OFAgent immutable
- Added OFAgentStore and OFAgentEvent
- Implemented OFAgentManager and OFSwitchManager
- Added unit tests

Change-Id: Ie39ad2db9e6bd6259a062371b3ffe116b8c8cc52
diff --git a/apps/ofagent/src/main/java/org/onosproject/ofagent/api/OFSwitch.java b/apps/ofagent/src/main/java/org/onosproject/ofagent/api/OFSwitch.java
index 8ee6f64..b8cabf9 100644
--- a/apps/ofagent/src/main/java/org/onosproject/ofagent/api/OFSwitch.java
+++ b/apps/ofagent/src/main/java/org/onosproject/ofagent/api/OFSwitch.java
@@ -15,19 +15,19 @@
  */
 package org.onosproject.ofagent.api;
 
-import org.onosproject.net.Device;
+import org.projectfloodlight.openflow.types.DatapathId;
 
 /**
  * Representation of virtual OpenFlow switch.
  */
-public interface OFSwitch extends OFSwitchService, OFControllerRoleService {
+public interface OFSwitch extends OFSwitchOperationService, OFControllerRoleService {
 
     /**
      * Returns the device information.
      *
      * @return virtual device
      */
-    Device device();
+    DatapathId dpid();
 
     /**
      * Returns the capabilities of the switch.
@@ -35,11 +35,4 @@
      * @return capabilities
      */
     OFSwitchCapabilities capabilities();
-
-    /**
-     * Returns if the switch is connected to controllers or not.
-     *
-     * @return true if the switch is connected, false otherwise
-     */
-    boolean isConnected();
 }