package cgeo.geocaching.maps.mapsforge.v6.caches; import cgeo.geocaching.enumerations.CoordinatesType; import cgeo.geocaching.utils.TextUtils; import org.apache.commons.lang3.StringUtils; import java.util.Comparator; public class GeoitemRef { public static final Comparator<? super GeoitemRef> NAME_COMPARATOR = new Comparator<GeoitemRef>() { @Override public int compare(final GeoitemRef left, final GeoitemRef right) { return TextUtils.COLLATOR.compare(left.getName(), right.getName()); } }; private final String itemCode; private final CoordinatesType type; private final String geocode; private final int id; private final String name; private final int markerId; public GeoitemRef(final String itemCode, final CoordinatesType type, final String geocode, final int id, final String name, final int markerId) { this.itemCode = itemCode; this.type = type; this.geocode = geocode; this.id = id; this.name = name; this.markerId = markerId; } @Override public boolean equals(final Object o) { if (this == o) { return true; } if (!(o instanceof GeoitemRef)) { return false; } return StringUtils.equalsIgnoreCase(this.itemCode, ((GeoitemRef) o).itemCode); } @Override public int hashCode() { return StringUtils.defaultString(itemCode).hashCode(); } @Override public String toString() { if (StringUtils.isEmpty(name)) { return itemCode; } return String.format("%s: %s", itemCode, name); } public String getItemCode() { return itemCode; } public CoordinatesType getType() { return type; } public String getGeocode() { return geocode; } public int getId() { return id; } public String getName() { return name; } public int getMarkerId() { return markerId; } }