@Override
    public final int compare(final Geocache cache1, final Geocache cache2) {
        final boolean canCompare1 = canCompare(cache1);
        final boolean canCompare2 = canCompare(cache2);
        if (!canCompare1) {
            return canCompare2 ? 1 : fallbackToGeocode(cache1, cache2);
        }
        return canCompare2 ? compareCaches(cache1, cache2) : -1;
    }
abstract super implementation for all cache comparators
main/src/main/java/cgeo/geocaching/sorting/AbstractCacheComparator.java