From f22a576ce5617b7cf99f47ded4d702789f4ff0fe Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Sun, 9 Mar 2014 09:49:06 +0000 Subject: [PATCH] Patch from Shaun Kalley from bug #56023 - On CellReference, implement hashCode, fix the equals(Object) logic, and fix inconsistent whitespace git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1575683 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/ss/util/CellReference.java | 53 +++++++++++-------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/src/java/org/apache/poi/ss/util/CellReference.java b/src/java/org/apache/poi/ss/util/CellReference.java index 0b063ec8b1..63196ab3be 100644 --- a/src/java/org/apache/poi/ss/util/CellReference.java +++ b/src/java/org/apache/poi/ss/util/CellReference.java @@ -499,28 +499,35 @@ public class CellReference { } } - /** - * Checks whether this cell reference is equal to another object. - *

- * Two cells references are assumed to be equal if their string representations - * ({@link #formatAsString()} are equal. - *

- */ - @Override - public boolean equals(Object o){ - if(!(o instanceof CellReference)) { - return false; - } - CellReference cr = (CellReference) o; - return _rowIndex == cr._rowIndex - && _colIndex == cr._colIndex - && _isRowAbs == cr._isColAbs - && _isColAbs == cr._isColAbs; - } + /** + * Checks whether this cell reference is equal to another object. + *

+ * Two cells references are assumed to be equal if their string representations + * ({@link #formatAsString()} are equal. + *

+ */ + @Override + public boolean equals(Object o){ + if (this == o) { + return true; + } + if(!(o instanceof CellReference)) { + return false; + } + CellReference cr = (CellReference) o; + return _rowIndex == cr._rowIndex + && _colIndex == cr._colIndex + && _isRowAbs == cr._isRowAbs + && _isColAbs == cr._isColAbs; + } - @Override - public int hashCode() { - assert false : "hashCode not designed"; - return 42; // any arbitrary constant will do - } + @Override + public int hashCode() { + int result = 17; + result = 31 * result + _rowIndex; + result = 31 * result + _colIndex; + result = 31 * result + (_isRowAbs ? 1 : 0); + result = 31 * result + (_isColAbs ? 1 : 0); + return result; + } } -- 2.39.5