Fix issues found by FindBugs: EQ_COMPARETO_USE_OBJECT_EQUALS
http://findbugs.sourceforge.net/bugDescriptions.html#EQ_COMPARETO_USE_OBJECT_EQUALS
* For each Comparable class that has compareTo() method, add
the corresponding equals() and hashCode() methods.
* Added/updated some of the Javadoc for the compareTo() methods
* Added a TODO comment inside class ControllerRegistryEntry
Change-Id: Idda67721329a21227c2136a4a2b8ee3367e520bc
diff --git a/src/main/java/net/onrc/onos/core/util/FlowPath.java b/src/main/java/net/onrc/onos/core/util/FlowPath.java
index fe51f08..0286bd2 100644
--- a/src/main/java/net/onrc/onos/core/util/FlowPath.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowPath.java
@@ -327,10 +327,43 @@
}
/**
- * CompareTo method to order flowPath by Id
+ * Compares this object with the specified object for order.
+ * NOTE: The test is based on the Flow ID.
+ *
+ * @param o the object to be compared.
+ * @return a negative integer, zero, or a positive integer as this object
+ * is less than, equal to, or greater than the specified object.
*/
@Override
public int compareTo(FlowPath f) {
- return (int) (this.flowId.value() - f.flowId.value());
+ return (this.flowId.compareTo(f.flowId()));
+ }
+
+ /**
+ * Test whether some other object is "equal to" this one.
+ * NOTE: The test is based on the Flow ID.
+ *
+ * @param obj the reference object with which to compare.
+ * @return true if this object is the same as the obj argument; false
+ * otherwise.
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof FlowPath) {
+ FlowPath other = (FlowPath) obj;
+ return (this.flowId.equals(other.flowId()));
+ }
+ return false;
+ }
+
+ /**
+ * Get the hash code for the object.
+ * NOTE: The computation is based on the Flow ID.
+ *
+ * @return a hash code value for this object.
+ */
+ @Override
+ public int hashCode() {
+ return this.flowId.hashCode();
}
}