ONOS-542 Defining application subsystem interfaces & public constructs.

Change-Id: Iba0d2cb69dace5beee8a68def9918059ce755b5c
diff --git a/core/api/src/main/java/org/onosproject/core/DefaultApplicationId.java b/core/api/src/main/java/org/onosproject/core/DefaultApplicationId.java
index e6f448e..3a07b2b 100644
--- a/core/api/src/main/java/org/onosproject/core/DefaultApplicationId.java
+++ b/core/api/src/main/java/org/onosproject/core/DefaultApplicationId.java
@@ -18,6 +18,7 @@
 import java.util.Objects;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
+import static com.google.common.base.Preconditions.checkArgument;
 
 /**
  * Application identifier.
@@ -33,8 +34,9 @@
      * @param id   application identifier
      * @param name application name
      */
-    public DefaultApplicationId(Short id, String name) {
-        this.id = id;
+    public DefaultApplicationId(int id, String name) {
+        checkArgument(0 <= id && id <= Short.MAX_VALUE, "id is outside range");
+        this.id = (short) id;
         this.name = name;
     }