From 3ea5c8d6b7a1211cddbbbfc2de8a7c08151a7e71 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sun, 12 Jan 2025 23:10:40 +0100 Subject: Refactor: KeyValue: Don't require _payload.equals Don't require _payload.equals to be implemented (correctly) and avoids inconsistencies with _payload.compareTo, which is required by type. --- srcs/juloo.keyboard2/KeyValue.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'srcs/juloo.keyboard2') diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index 3e8b7ff..359d1d3 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -137,7 +137,9 @@ public final class KeyValue implements Comparable */ private final Comparable _payload; - /** This field encodes three things: Kind, flags and value. */ + /** This field encodes three things: Kind (KIND_BITS), flags (FLAGS_BITS) and + value (VALUE_BITS). + The meaning of the value depends on the kind. */ private final int _code; public Kind getKind() @@ -267,6 +269,8 @@ public final class KeyValue implements Comparable d = _code - snd._code; if (d != 0) return d; + // Calls [compareTo] assuming that if [_code] matches, then [_payload] are + // of the same class. return _payload.compareTo(snd._payload); } @@ -275,7 +279,7 @@ public final class KeyValue implements Comparable { if (snd == null) return false; - return _code == snd._code && _payload.equals(snd._payload); + return _code == snd._code && _payload.compareTo(snd._payload) == 0; } @Override @@ -757,14 +761,6 @@ public final class KeyValue implements Comparable @Override public abstract int compareTo(Complex snd); - @Override - public boolean equals(Object snd) - { - if (snd instanceof Complex) - return compareTo((Complex)snd) == 0; - return false; - } - @Override public String toString() { -- cgit v1.2.3