Cosmetic fixes to ID classes.
Removed hand crafted hashCode, etc.
Change-Id: Ifc0d6f616988f78e5567e2cc5d4e5e535d49e1f9
diff --git a/src/main/java/net/onrc/onos/core/util/Dpid.java b/src/main/java/net/onrc/onos/core/util/Dpid.java
index 8e4e837..ddfbecf 100644
--- a/src/main/java/net/onrc/onos/core/util/Dpid.java
+++ b/src/main/java/net/onrc/onos/core/util/Dpid.java
@@ -1,5 +1,7 @@
package net.onrc.onos.core.util;
+import javax.annotation.concurrent.Immutable;
+
import net.onrc.onos.core.util.serializers.DpidDeserializer;
import net.onrc.onos.core.util.serializers.DpidSerializer;
@@ -7,12 +9,15 @@
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.projectfloodlight.openflow.util.HexString;
+import com.google.common.primitives.Longs;
+
/**
* The class representing a network switch DPID.
* This class is immutable.
*/
@JsonDeserialize(using = DpidDeserializer.class)
@JsonSerialize(using = DpidSerializer.class)
+@Immutable
public final class Dpid {
private static final long UNKNOWN = 0;
private final long value;
@@ -74,8 +79,6 @@
@Override
public int hashCode() {
- int hash = 17;
- hash += 31 * hash + (int) (value ^ value >>> 32);
- return hash;
+ return Longs.hashCode(value);
}
}
diff --git a/src/main/java/net/onrc/onos/core/util/LinkTuple.java b/src/main/java/net/onrc/onos/core/util/LinkTuple.java
index 7831925..f44698f 100644
--- a/src/main/java/net/onrc/onos/core/util/LinkTuple.java
+++ b/src/main/java/net/onrc/onos/core/util/LinkTuple.java
@@ -4,10 +4,13 @@
import java.util.Objects;
+import javax.annotation.concurrent.Immutable;
+
/**
* Immutable class to identify a Link between 2 ports.
*/
+@Immutable
public final class LinkTuple {
private final SwitchPort src;
@@ -66,11 +69,7 @@
@Override
public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((src == null) ? 0 : src.hashCode());
- result = prime * result + ((dst == null) ? 0 : dst.hashCode());
- return result;
+ return Objects.hash(src, dst);
}
@Override
diff --git a/src/main/java/net/onrc/onos/core/util/OnosInstanceId.java b/src/main/java/net/onrc/onos/core/util/OnosInstanceId.java
index 61b0751..9badb1b 100644
--- a/src/main/java/net/onrc/onos/core/util/OnosInstanceId.java
+++ b/src/main/java/net/onrc/onos/core/util/OnosInstanceId.java
@@ -3,11 +3,14 @@
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkArgument;
+import javax.annotation.concurrent.Immutable;
+
/**
* The class representing an ONOS Instance ID.
*
* This class is immutable.
*/
+@Immutable
public final class OnosInstanceId {
private final String id;
diff --git a/src/main/java/net/onrc/onos/core/util/PortNumber.java b/src/main/java/net/onrc/onos/core/util/PortNumber.java
index 09df247..0320a42 100644
--- a/src/main/java/net/onrc/onos/core/util/PortNumber.java
+++ b/src/main/java/net/onrc/onos/core/util/PortNumber.java
@@ -1,14 +1,15 @@
package net.onrc.onos.core.util;
+import javax.annotation.concurrent.Immutable;
+
import org.codehaus.jackson.annotate.JsonProperty;
import com.google.common.primitives.UnsignedInts;
/**
* Immutable class representing a port number.
- * <p/>
- * Current implementation supports only OpenFlow 1.0 (16 bit unsigned) port number.
*/
+@Immutable
public final class PortNumber {
private final int value;
diff --git a/src/main/java/net/onrc/onos/core/util/SwitchPort.java b/src/main/java/net/onrc/onos/core/util/SwitchPort.java
index 74f0ed4..da60cbf 100644
--- a/src/main/java/net/onrc/onos/core/util/SwitchPort.java
+++ b/src/main/java/net/onrc/onos/core/util/SwitchPort.java
@@ -2,6 +2,10 @@
import static com.google.common.base.Preconditions.checkNotNull;
+import java.util.Objects;
+
+import javax.annotation.concurrent.Immutable;
+
import net.onrc.onos.core.util.serializers.SwitchPortSerializer;
import org.codehaus.jackson.map.annotate.JsonSerialize;
@@ -11,6 +15,7 @@
* This class is immutable.
*/
@JsonSerialize(using = SwitchPortSerializer.class)
+@Immutable
public final class SwitchPort {
private final Dpid dpid; // The DPID of the switch
private final PortNumber port; // The port number on the switch
@@ -101,9 +106,6 @@
@Override
public int hashCode() {
- int hash = 17;
- hash += 31 * hash + dpid.hashCode();
- hash += 31 * hash + port.hashCode();
- return hash;
+ return Objects.hash(dpid, port);
}
}