Equals and Hash code fix for byte array.
Change-Id: I643dd22f285d153752107273fadb77248bf83589
diff --git a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IsoNodeId.java b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IsoNodeId.java
index 8bb3d8b..ff8206f 100644
--- a/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IsoNodeId.java
+++ b/apps/iptopology-api/src/main/java/org/onosproject/iptopology/api/IsoNodeId.java
@@ -17,6 +17,7 @@
import static com.google.common.base.MoreObjects.toStringHelper;
+import java.util.Arrays;
import java.util.Objects;
/**
@@ -53,7 +54,7 @@
@Override
public int hashCode() {
- return Objects.hash(isoNodeId, type);
+ return Objects.hash(Arrays.hashCode(isoNodeId), type);
}
@Override
@@ -64,15 +65,29 @@
if (obj instanceof IsoNodeId) {
IsoNodeId other = (IsoNodeId) obj;
- return Objects.equals(isoNodeId, other.isoNodeId) && Objects.equals(type, other.type);
+ return Arrays.equals(isoNodeId, other.isoNodeId) && Objects.equals(type, other.type);
}
return false;
}
+ /*
+ * Get iso node ID in specified string format.
+ */
+ private String isoNodeIdString() {
+ if (isoNodeId != null) {
+ int p1 = (int) isoNodeId[0] << 8 | (int) isoNodeId[1];
+ int p2 = (int) isoNodeId[2] << 8 | (int) isoNodeId[3];
+ int p3 = (int) isoNodeId[4] << 8 | (int) isoNodeId[5];
+
+ return String.format("%1$d.%2$d.%3$d", p1, p2, p3);
+ }
+ return null;
+ }
+
@Override
public String toString() {
- return toStringHelper(this)
- .add("isoNodeId", isoNodeId)
+ return toStringHelper(this).omitNullValues()
+ .add("isoNodeId", isoNodeIdString())
.add("type", type)
.toString();
}