Properly implement hashCode().

This commit is contained in:
Felix Ableitner 2014-11-30 21:09:39 +02:00
parent d565bdb373
commit 8379263d09
4 changed files with 9 additions and 8 deletions

View file

@ -2,7 +2,7 @@ package com.nutomic.ensichat.messages
import java.security.spec.X509EncodedKeySpec import java.security.spec.X509EncodedKeySpec
import java.security.{KeyFactory, PublicKey} import java.security.{KeyFactory, PublicKey}
import java.util.Date import java.util.{Date, Objects}
import com.nutomic.ensichat.bluetooth.Device import com.nutomic.ensichat.bluetooth.Device
import com.nutomic.ensichat.messages.Message._ import com.nutomic.ensichat.messages.Message._
@ -35,7 +35,7 @@ class DeviceInfoMessage(override val sender: Device.ID, override val receiver: D
override def equals(a: Any) = override def equals(a: Any) =
super.equals(a) && a.asInstanceOf[DeviceInfoMessage].publicKey.toString == publicKey.toString super.equals(a) && a.asInstanceOf[DeviceInfoMessage].publicKey.toString == publicKey.toString
override def hashCode = super.hashCode + publicKey.hashCode override def hashCode = Objects.hash(super.hashCode: java.lang.Integer, publicKey)
override def toString = "DeviceInfoMessage(" + sender.toString + ", " + receiver.toString + override def toString = "DeviceInfoMessage(" + sender.toString + ", " + receiver.toString +
", " + date.toString + ", " + publicKey.toString + ")" ", " + date.toString + ", " + publicKey.toString + ")"

View file

@ -1,7 +1,7 @@
package com.nutomic.ensichat.messages package com.nutomic.ensichat.messages
import java.io.IOException import java.io.IOException
import java.util.Date import java.util.{Date, Objects}
import com.nutomic.ensichat.bluetooth.Device import com.nutomic.ensichat.bluetooth.Device
import org.msgpack.ScalaMessagePack import org.msgpack.ScalaMessagePack
@ -116,7 +116,7 @@ abstract class Message(val messageType: Int) {
* Implementations must provide their own implementation to check the result of this * Implementations must provide their own implementation to check the result of this
* function and their own data. * function and their own data.
*/ */
override def hashCode: Int = sender.hashCode + receiver.hashCode + date.hashCode override def hashCode: Int = Objects.hash(sender, receiver, date)
override def toString: String override def toString: String

View file

@ -1,6 +1,6 @@
package com.nutomic.ensichat.messages package com.nutomic.ensichat.messages
import java.util.Date import java.util.{Date, Objects}
import com.nutomic.ensichat.activities.AddContactsActivity import com.nutomic.ensichat.activities.AddContactsActivity
import com.nutomic.ensichat.bluetooth.Device import com.nutomic.ensichat.bluetooth.Device
@ -28,7 +28,8 @@ class ResultAddContactMessage(override val sender: Device.ID, override val recei
override def equals(a: Any) = override def equals(a: Any) =
super.equals(a) && a.asInstanceOf[ResultAddContactMessage].Accepted == Accepted super.equals(a) && a.asInstanceOf[ResultAddContactMessage].Accepted == Accepted
override def hashCode = super.hashCode + Accepted.hashCode override def hashCode =
Objects.hash(super.hashCode: java.lang.Integer, Accepted: java.lang.Boolean)
override def toString = "ResultAddContactMessage(" + sender.toString + ", " + receiver.toString + override def toString = "ResultAddContactMessage(" + sender.toString + ", " + receiver.toString +
", " + date.toString + ", " + Accepted + ")" ", " + date.toString + ", " + Accepted + ")"

View file

@ -1,6 +1,6 @@
package com.nutomic.ensichat.messages package com.nutomic.ensichat.messages
import java.util.Date import java.util.{Date, Objects}
import com.nutomic.ensichat.bluetooth.Device import com.nutomic.ensichat.bluetooth.Device
import com.nutomic.ensichat.messages.Message._ import com.nutomic.ensichat.messages.Message._
@ -24,7 +24,7 @@ class TextMessage(override val sender: Device.ID, override val receiver: Device.
override def equals(a: Any) = super.equals(a) && a.asInstanceOf[TextMessage].text == text override def equals(a: Any) = super.equals(a) && a.asInstanceOf[TextMessage].text == text
override def hashCode = super.hashCode + text.hashCode override def hashCode = Objects.hash(super.hashCode: java.lang.Integer, text)
override def toString = "TextMessage(" + sender.toString + ", " + receiver.toString + override def toString = "TextMessage(" + sender.toString + ", " + receiver.toString +
", " + date.toString + ", " + text + ")" ", " + date.toString + ", " + text + ")"