Adding ability to project device, link and host model as alternate entities.

Change-Id: If23c018b024a3bbe693f0e66888c5f1707e3f66d
diff --git a/core/api/src/main/java/org/onosproject/net/DefaultLink.java b/core/api/src/main/java/org/onosproject/net/DefaultLink.java
index 1876db6..5515175 100644
--- a/core/api/src/main/java/org/onosproject/net/DefaultLink.java
+++ b/core/api/src/main/java/org/onosproject/net/DefaultLink.java
@@ -24,11 +24,10 @@
 import static org.onosproject.net.DefaultAnnotations.EMPTY;
 import static com.google.common.base.Preconditions.checkNotNull;
 
-
 /**
  * Default infrastructure link model implementation.
  */
-public class DefaultLink extends AbstractModel implements Link {
+public class DefaultLink extends AbstractProjectableModel implements Link {
 
     private final ConnectPoint src;
     private final ConnectPoint dst;
@@ -60,7 +59,7 @@
      * @param dst         link destination
      * @param type        link type
      * @param state       link state
-     * @param isExpected   indicates if the link is preconfigured
+     * @param isExpected  indicates if the link is preconfigured
      * @param annotations optional key/value annotations
      */
     private DefaultLink(ProviderId providerId, ConnectPoint src, ConnectPoint dst,