Adds equals override to Trait objects.

Fixes trait comparisons.
This commit is contained in:
Tom Hicks
2021-06-25 14:28:21 -07:00
parent b14fe3ad69
commit 03965f5ad7

View File

@@ -1,6 +1,9 @@
package com.majinnaibu.monstercards.models; package com.majinnaibu.monstercards.models;
import androidx.annotation.Nullable;
import java.util.Comparator; import java.util.Comparator;
import java.util.Objects;
public class Trait implements Comparator<Trait>, Comparable<Trait> { public class Trait implements Comparator<Trait>, Comparable<Trait> {
@@ -14,12 +17,33 @@ public class Trait implements Comparator<Trait>, Comparable<Trait> {
@Override @Override
public int compareTo(Trait o) { public int compareTo(Trait o) {
return this.name.compareToIgnoreCase(o.name); return compare(this, o);
} }
@Override @Override
public int compare(Trait o1, Trait o2) { public int compare(Trait o1, Trait o2) {
return o1.name.compareToIgnoreCase(o2.name); int result = o1.name.compareToIgnoreCase(o2.name);
if (result != 0) {
return result;
}
return o1.description.compareToIgnoreCase(o2.description);
} }
@Override
public boolean equals(@Nullable @org.jetbrains.annotations.Nullable Object obj) {
if (obj == null) {
return false;
}
if (!(obj instanceof Trait)) {
return false;
}
Trait otherTrait = (Trait) obj;
if (!Objects.equals(this.name, otherTrait.name)) {
return false;
}
if (!Objects.equals(this.description, otherTrait.description)) {
return false;
}
return true;
}
} }