From 5cc7268518b8689fe212c481ea962a8afacc6d61 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Thu, 16 Jun 2016 13:47:05 +0100 Subject: [PATCH] JAL-2110 equals and hashcode should check fromSeq --- src/jalview/datamodel/AlignedCodonFrame.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/jalview/datamodel/AlignedCodonFrame.java b/src/jalview/datamodel/AlignedCodonFrame.java index 473a534..a4b99bf 100644 --- a/src/jalview/datamodel/AlignedCodonFrame.java +++ b/src/jalview/datamodel/AlignedCodonFrame.java @@ -60,14 +60,15 @@ public class AlignedCodonFrame } /** - * Returns a hashCode derived from the hashcodes of the mappings + * Returns a hashCode derived from the hashcodes of the mappings and fromSeq * * @see SequenceToSequenceMapping#hashCode() */ @Override public int hashCode() { - return mapping.hashCode(); + return (fromSeq == null ? 0 : fromSeq.hashCode() * 31) + + mapping.hashCode(); } /** @@ -88,7 +89,12 @@ public class AlignedCodonFrame { return that.mapping == null; } - return this.mapping.equals(that.mapping); + // TODO: can simplify by asserting fromSeq is a dataset sequence + return (this.fromSeq == that.fromSeq || (this.fromSeq != null + && that.fromSeq != null + && this.fromSeq.getDatasetSequence() != null && this.fromSeq + .getDatasetSequence() == that.fromSeq + .getDatasetSequence())) && this.mapping.equals(that.mapping); } public SequenceI getFromSeq() -- 1.7.10.2