From: <dav...@us...> - 2012-03-20 16:00:01
|
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. |