@SuppressFBWarnings("FE_FLOATING_POINT_EQUALITY")
    private boolean isEqualTo(final Geocache other) {
        return detailed == other.detailed &&
                StringUtils.equalsIgnoreCase(geocode, other.geocode) &&
                StringUtils.equalsIgnoreCase(name, other.name) &&
                cacheType.equals(other.cacheType) &&
                size == other.size &&
                Objects.equals(found, other.found) &&
                Objects.equals(didNotFound, other.didNotFound) &&
                Objects.equals(premiumMembersOnly, other.premiumMembersOnly) &&
                difficulty == other.difficulty &&
                terrain == other.terrain &&
                Objects.equals(coords, other.coords) &&
                Objects.equals(disabled, other.disabled) &&
                Objects.equals(archived, other.archived) &&
                Objects.equals(lists, other.lists) &&
                StringUtils.equalsIgnoreCase(ownerDisplayName, other.ownerDisplayName) &&
                StringUtils.equalsIgnoreCase(ownerUserId, other.ownerUserId) &&
                StringUtils.equalsIgnoreCase(getDescription(), other.getDescription()) &&
                Objects.equals(personalNote, other.personalNote) &&
                StringUtils.equalsIgnoreCase(getShortDescription(), other.getShortDescription()) &&
                StringUtils.equalsIgnoreCase(getLocation(), other.getLocation()) &&
                Objects.equals(favorite, other.favorite) &&
                favoritePoints == other.favoritePoints &&
                Objects.equals(onWatchlist, other.onWatchlist) &&
                Objects.equals(hidden, other.hidden) &&
                Objects.equals(lastFound, other.lastFound) &&
                StringUtils.equalsIgnoreCase(guid, other.guid) &&
                StringUtils.equalsIgnoreCase(getHint(), other.getHint()) &&
                StringUtils.equalsIgnoreCase(cacheId, other.cacheId) &&
                Objects.equals(direction, other.direction) &&
                Objects.equals(distance, other.distance) &&
                rating == other.rating &&
                votes == other.votes &&
                myVote == other.myVote &&
                inventoryItems == other.inventoryItems &&
                attributes.equals(other.attributes) &&
                waypoints.equals(other.waypoints) &&
                Objects.equals(spoilers, other.spoilers) &&
                Objects.equals(inventory, other.inventory) &&
                Objects.equals(logCounts, other.logCounts) &&
                Objects.equals(hasLogOffline, other.hasLogOffline) &&
                finalDefined == other.finalDefined &&
                Objects.equals(searchCacheData, other.searchCacheData);
    }
Compare two caches quickly. For map and list fields only the references are compared !

@param other the other cache to compare this one to
@return true if both caches have the same content
main/src/main/java/cgeo/geocaching/models/Geocache.java