[ONOS-4014] Refactor *Id classes to extend from Identifier class

- Refactor most of *Id classes in onos-api package
- Refactor all of *Id classes in incubator package

Change-Id: Ief6322d3fb42c80e82f695e9d4dcee439346215b
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmEntityId.java b/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmEntityId.java
index 5bf8674..7b594c2 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmEntityId.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmEntityId.java
@@ -15,29 +15,29 @@
  */
 package org.onosproject.incubator.net.faultmanagement.alarm;
 
-import static com.google.common.base.Preconditions.checkArgument;
 import com.google.common.collect.ImmutableSet;
+import org.onlab.util.Identifier;
+
 import java.net.URI;
-import java.util.Objects;
 import java.util.Set;
 
+import static com.google.common.base.Preconditions.checkArgument;
+
 /**
  * Immutable representation of a alarm source. It is meaningful within the
  * context of a device.
  */
-public final class AlarmEntityId {
+public final class AlarmEntityId extends Identifier<URI> {
 
     public static final AlarmEntityId NONE = new AlarmEntityId(URI.create("none:none"));
     public static final Set<String> SCHEMES = ImmutableSet.of("none", "port", "och", "other");
 
-    private final URI uri;
-
     private AlarmEntityId(final URI uri) {
-        this.uri = uri;
+        super(uri);
     }
 
     protected AlarmEntityId() {
-        uri = NONE.uri;
+        super(NONE.identifier);
     }
 
     public static AlarmEntityId alarmEntityId(final String string) {
@@ -48,28 +48,4 @@
         checkArgument(SCHEMES.contains(uri.getScheme()), "Unexpected scheme");
         return new AlarmEntityId(uri);
     }
-
-    @Override
-    public String toString() {
-        return uri.toString();
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(uri);
-
-    }
-
-    @Override
-    public boolean equals(final Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj instanceof AlarmEntityId) {
-            final AlarmEntityId other = (AlarmEntityId) obj;
-            return Objects.equals(this.uri, other.uri);
-        }
-        return false;
-    }
-
 }
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmId.java b/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmId.java
index 4e65009..7c16d98 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmId.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/faultmanagement/alarm/AlarmId.java
@@ -16,8 +16,8 @@
 package org.onosproject.incubator.net.faultmanagement.alarm;
 
 import com.google.common.annotations.Beta;
-import java.util.Objects;
-import static com.google.common.base.MoreObjects.toStringHelper;
+import org.onlab.util.Identifier;
+
 import static com.google.common.base.Preconditions.checkArgument;
 /**
  * Alarm identifier suitable as an external key.
@@ -25,9 +25,8 @@
  * This class is immutable.</p>
  */
 @Beta
-public final class AlarmId {
+public final class AlarmId extends Identifier<Long> {
 
-    private final long id;
     public static final AlarmId NONE = new AlarmId();
 
     /**
@@ -36,12 +35,12 @@
      * @param id the id
      */
     private AlarmId(long id) {
+        super(id);
         checkArgument(id != 0L, "id must be non-zero");
-        this.id = id;
     }
 
     private AlarmId() {
-        this.id = 0L;
+        super(0L);
     }
 
     /**
@@ -60,29 +59,6 @@
      * @return backing integer index
      */
     public long fingerprint() {
-        return id;
+        return identifier;
     }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(id);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj instanceof AlarmId) {
-            AlarmId other = (AlarmId) obj;
-            return Objects.equals(this.id, other.id);
-        }
-        return false;
-    }
-
-    @Override
-    public String toString() {
-        return toStringHelper(this).add("id", id).toString();
-    }
-
 }