Revision: 1315
http://cishell.svn.sourceforge.net/cishell/?rev=1315&view=rev
Author: david-coe
Date: 2012-03-20 15:59:50 +0000 (Tue, 20 Mar 2012)
Log Message:
-----------
Since the method overrode equals, it should also override hashcode.
Reviewed by Joseph.
Modified Paths:
--------------
trunk/core/org.cishell.reference/src/org/cishell/reference/app/service/scheduler/SchedulerServiceImpl.java
Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/app/service/scheduler/SchedulerServiceImpl.java
===================================================================
--- trunk/core/org.cishell.reference/src/org/cishell/reference/app/service/scheduler/SchedulerServiceImpl.java 2012-03-20 15:18:36 UTC (rev 1314)
+++ trunk/core/org.cishell.reference/src/org/cishell/reference/app/service/scheduler/SchedulerServiceImpl.java 2012-03-20 15:59:50 UTC (rev 1315)
@@ -33,6 +33,8 @@
import org.cishell.reference.app.service.scheduler.AlgorithmTask.AlgorithmState;
import org.osgi.framework.ServiceReference;
+import com.google.common.base.Objects;
+
/**
* A simple scheduler based on {@link java.util.Timer}.
*
@@ -647,6 +649,9 @@
}
}
+ /**
+ * Overrides the equals method to only use the name field.
+ */
static class AlgorithmState {
/** New algorithms are in this state. */
public static final AlgorithmState NEW = new AlgorithmState("NEW", false) {
@@ -702,17 +707,35 @@
this.isCanceled = isCanceled;
}
- public final boolean equals(Object object) {
- if (!(object instanceof AlgorithmState)) {
- return false;
- }
- AlgorithmState state = (AlgorithmState) object;
+ /* Only uses the name field.
+ */
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(this.name);
+ }
- return state.name.compareTo(name) == 0;
- }
- public void performAction(
+ /*
+ * Only uses the name field.
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (!(obj instanceof AlgorithmState)) {
+ return false;
+ }
+ AlgorithmState other = (AlgorithmState) obj;
+ return Objects.equal(this.name, other.name);
+ }
+
+
+ public void performAction(
Algorithm algorithm,
SchedulerListener schedulerListener,
Calendar scheduledTime,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|