[ONOS-3804] [ONOS-3805] Initial L3 flowrules setup for Compute/Gateway nodes and PNAT Handler for OpenstackRouting

 - Performs app refactoring (openstackrouting and openstackswitching)
 - Implements L3 REST call corresponding openstackRouter and openstackRouterInterface.
 - Implements initail L3 rules population to compute/gateway node.
 - Implements PNAT rules population corresponding packet-in event.
 - Fixs comments and javadocs.
 - Rebases on master.

Change-Id: I5ad68810f50dc977737d30c43150c892b978b7cb
diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackFloatingIP.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackFloatingIP.java
index bed0289..569c885 100644
--- a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackFloatingIP.java
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackFloatingIP.java
@@ -19,12 +19,14 @@
 
 import java.util.Objects;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 /**
  *  An Openstack Neutron Floating IP Model.
  */
 public final class OpenstackFloatingIP {
 
-    public enum FloatingIPStatus {
+    public enum FloatingIpStatus {
         UP,
         DOWN,
         ACTIVE,
@@ -33,13 +35,13 @@
     private final String tenantId;
     private final String networkId;
     private final Ip4Address fixedIpAddress;
-    private final String portId;
-    private final String routerId;
+    private String portId;
+    private String routerId;
     private final String id;
     private final Ip4Address floatingIpAddress;
-    private final FloatingIPStatus status;
+    private final FloatingIpStatus status;
 
-    private OpenstackFloatingIP(FloatingIPStatus status, String id, String tenantId,
+    private OpenstackFloatingIP(FloatingIpStatus status, String id, String tenantId,
                                 String networkId, Ip4Address fixedIpAddress, String portId,
                                 String routerId, Ip4Address floatingIpAddress) {
         this.status = status;
@@ -57,7 +59,7 @@
      *
      * @return floating IP status
      */
-    public FloatingIPStatus status() {
+    public FloatingIpStatus status() {
         return status;
     }
 
@@ -107,6 +109,15 @@
     }
 
     /**
+     * Updates port ID.
+     *
+     * @param portId Updated port ID
+     */
+    public void updatePortId(String portId) {
+        this.portId = portId;
+    }
+
+    /**
      * Returns router ID.
      *
      * @return router ID
@@ -116,6 +127,15 @@
     }
 
     /**
+     * Updates router ID.
+     *
+     * @param routerId Updated router ID
+     */
+    public void updateRouterId(String routerId) {
+        this.routerId = routerId;
+    }
+
+    /**
      * Returns floating IP address.
      *
      * @return Floating IP address
@@ -162,7 +182,7 @@
         private String routerId;
         private String id;
         private Ip4Address floatingIpAddress;
-        private FloatingIPStatus status;
+        private FloatingIpStatus status;
 
         /**
          * Sets tenant ID.
@@ -181,7 +201,7 @@
          * @param status Floating IP status
          * @return Builder object
          */
-        public Builder status(FloatingIPStatus status) {
+        public Builder status(FloatingIpStatus status) {
             this.status = status;
             return this;
         }
@@ -258,8 +278,9 @@
          * @return OpenstackFloatingIP object
          */
         public OpenstackFloatingIP build() {
-            return new OpenstackFloatingIP(status, id, tenantId, networkId,
-                    fixedIpAddress, portId, routerId, floatingIpAddress);
+            return new OpenstackFloatingIP(checkNotNull(status), checkNotNull(id), checkNotNull(tenantId),
+                    checkNotNull(networkId), fixedIpAddress, portId,
+                    routerId, checkNotNull(floatingIpAddress));
 
         }
     }