Add a builder for DefaultLink to hide multiplying constructors

Change-Id: Iaf073d07989c398a8f44541ffdb8dd93e5715162
diff --git a/core/common/src/test/java/org/onosproject/codec/impl/LinkCodecTest.java b/core/common/src/test/java/org/onosproject/codec/impl/LinkCodecTest.java
index c44b0eb..d04a91c 100644
--- a/core/common/src/test/java/org/onosproject/codec/impl/LinkCodecTest.java
+++ b/core/common/src/test/java/org/onosproject/codec/impl/LinkCodecTest.java
@@ -33,13 +33,15 @@
  */
 public class LinkCodecTest {
 
-    private final Link link = new DefaultLink(JsonCodecUtils.PID,
-                                              JsonCodecUtils.CP1,
-                                              JsonCodecUtils.CP2,
-                                              Link.Type.DIRECT,
-                                              Link.State.ACTIVE,
-                                              false,
-                                              JsonCodecUtils.A1);
+    private final Link link = DefaultLink.builder()
+            .providerId(JsonCodecUtils.PID)
+            .src(JsonCodecUtils.CP1)
+            .dst(JsonCodecUtils.CP2)
+            .type(Link.Type.DIRECT)
+            .state(Link.State.ACTIVE)
+            .isExpected(false)
+            .annotations(JsonCodecUtils.A1)
+            .build();
 
     @Test
     public void linkCodecTest() {
diff --git a/core/common/src/test/java/org/onosproject/common/DefaultTopologyTest.java b/core/common/src/test/java/org/onosproject/common/DefaultTopologyTest.java
index ef0f332..f12b1fc 100644
--- a/core/common/src/test/java/org/onosproject/common/DefaultTopologyTest.java
+++ b/core/common/src/test/java/org/onosproject/common/DefaultTopologyTest.java
@@ -122,9 +122,11 @@
 
     // Short-hand for creating a link.
     public static Link link(String src, int sp, String dst, int dp) {
-        return new DefaultLink(PID, new ConnectPoint(did(src), portNumber(sp)),
-                               new ConnectPoint(did(dst), portNumber(dp)),
-                               Link.Type.DIRECT);
+        return DefaultLink.builder().providerId(PID)
+                .src(new ConnectPoint(did(src), portNumber(sp)))
+                .dst(new ConnectPoint(did(dst), portNumber(dp)))
+                .type(Link.Type.DIRECT)
+                .build();
     }
 
     // Crates a new device with the specified id
diff --git a/core/common/src/test/java/org/onosproject/store/trivial/SimpleLinkResourceStoreTest.java b/core/common/src/test/java/org/onosproject/store/trivial/SimpleLinkResourceStoreTest.java
index 238e75d..6f6d853 100644
--- a/core/common/src/test/java/org/onosproject/store/trivial/SimpleLinkResourceStoreTest.java
+++ b/core/common/src/test/java/org/onosproject/store/trivial/SimpleLinkResourceStoreTest.java
@@ -76,11 +76,13 @@
                 .set(AnnotationKeys.OPTICAL_WAVES, "80")
                 .set(AnnotationKeys.BANDWIDTH, "1000")
                 .build();
-        return new DefaultLink(
-                new ProviderId("of", "foo"),
-                new ConnectPoint(deviceId(dev1), portNumber(port1)),
-                new ConnectPoint(deviceId(dev2), portNumber(port2)),
-                DIRECT, annotations);
+        return DefaultLink.builder()
+                .providerId(new ProviderId("of", "foo"))
+                .src(new ConnectPoint(deviceId(dev1), portNumber(port1)))
+                .dst(new ConnectPoint(deviceId(dev2), portNumber(port2)))
+                .type(DIRECT)
+                .annotations(annotations)
+                .build();
     }
 
     @Before
diff --git a/core/common/src/test/java/org/onosproject/store/trivial/SimpleLinkStore.java b/core/common/src/test/java/org/onosproject/store/trivial/SimpleLinkStore.java
index 92b882a..ad2784d 100644
--- a/core/common/src/test/java/org/onosproject/store/trivial/SimpleLinkStore.java
+++ b/core/common/src/test/java/org/onosproject/store/trivial/SimpleLinkStore.java
@@ -196,11 +196,14 @@
         if (link.isDurable()) {
             return link.state() == INACTIVE ? null :
                     updateLink(linkKey(link.src(), link.dst()), link,
-                               new DefaultLink(link.providerId(),
-                                               link.src(), link.dst(),
-                                               link.type(), INACTIVE,
-                                               link.isDurable(),
-                                               link.annotations()));
+                               DefaultLink.builder()
+                                       .providerId(link.providerId())
+                                       .src(link.src())
+                                       .dst(link.dst())
+                                       .type(link.type())
+                                       .state(INACTIVE)
+                                       .isExpected(link.isExpected())
+                                       .annotations(link.annotations()).build());
         }
         return removeLink(src, dst);
     }
@@ -327,7 +330,15 @@
         }
 
         boolean isDurable = Objects.equals(annotations.value(AnnotationKeys.DURABLE), "true");
-        return new DefaultLink(primary, src, dst, type, ACTIVE, isDurable, annotations);
+        return DefaultLink.builder()
+                .providerId(primary)
+                .src(src)
+                .dst(dst)
+                .type(type)
+                .state(ACTIVE)
+                .isExpected(isDurable)
+                .annotations(annotations)
+                .build();
     }
 
     private Map<ProviderId, LinkDescription> getOrCreateLinkDescriptions(LinkKey key) {