Refactor connectivity intent creation to use builders

- Each connectivity intent now has only one constructor
- Intent constructors are now private for leaf classes and
  protected for classes that can be derived from
- Each intent class has a Builder class that accumulates
  parameters for intent creation
- Each intent class has a public static builder() method
  to create a builder
- Each Builder class has a build() method to create the
  intent from the accumulated parameters
- Added keys to a few intent types that were missing them
- Tightened up usage of checkNotNull(), taking advantage of
  the return value to save some lines of code
- Modified callers to use the builders instead of directly
  calling the constructors

Change-Id: I713185d5ecbadbf51f87ef7f68fec41102106c78
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
index c27772f..13dde08 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
@@ -311,9 +311,11 @@
         HostId two = hostId(string(payload, "two"));
 
         HostToHostIntent intent =
-                new HostToHostIntent(appId, one, two,
-                                     DefaultTrafficSelector.emptySelector(),
-                                     DefaultTrafficTreatment.emptyTreatment());
+                HostToHostIntent.builder()
+                        .appId(appId)
+                        .one(one)
+                        .two(two)
+                        .build();
 
         intentService.submit(intent);
         startMonitoringIntent(event, intent);
@@ -336,8 +338,13 @@
         TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment();
 
         MultiPointToSinglePointIntent intent =
-                new MultiPointToSinglePointIntent(appId, selector, treatment,
-                                                  ingressPoints, dstHost.location());
+                MultiPointToSinglePointIntent.builder()
+                        .appId(appId)
+                        .selector(selector)
+                        .treatment(treatment)
+                        .ingressPoints(ingressPoints)
+                        .egressPoint(dstHost.location())
+                        .build();
 
         intentService.submit(intent);
         startMonitoringIntent(event, intent);
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewWebSocket.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewWebSocket.java
index 9ef1329..c076078 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewWebSocket.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewWebSocket.java
@@ -15,9 +15,16 @@
  */
 package org.onosproject.ui.impl;
 
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.Timer;
+import java.util.TimerTask;
+
 import org.eclipse.jetty.websocket.WebSocket;
 import org.onlab.osgi.ServiceDirectory;
 import org.onlab.util.AbstractAccumulator;
@@ -55,15 +62,9 @@
 import org.onosproject.net.link.LinkEvent;
 import org.onosproject.net.link.LinkListener;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.Timer;
-import java.util.TimerTask;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 
 import static com.google.common.base.Strings.isNullOrEmpty;
 import static org.onosproject.cluster.ClusterEvent.Type.INSTANCE_ADDED;
@@ -349,9 +350,12 @@
         HostId two = hostId(string(payload, "two"));
 
         HostToHostIntent intent =
-                new HostToHostIntent(appId, one, two,
-                                     DefaultTrafficSelector.emptySelector(),
-                                     DefaultTrafficTreatment.emptyTreatment());
+                HostToHostIntent.builder()
+                        .appId(appId)
+                        .one(one)
+                        .two(two)
+                        .build();
+
 
         intentService.submit(intent);
         startMonitoringIntent(event, intent);
@@ -374,8 +378,13 @@
         TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment();
 
         MultiPointToSinglePointIntent intent =
-                new MultiPointToSinglePointIntent(appId, selector, treatment,
-                                                  ingressPoints, dstHost.location());
+                MultiPointToSinglePointIntent.builder()
+                        .appId(appId)
+                        .selector(selector)
+                        .treatment(treatment)
+                        .ingressPoints(ingressPoints)
+                        .egressPoint(dstHost.location())
+                        .build();
 
         intentService.submit(intent);
         startMonitoringIntent(event, intent);