diff options
Diffstat (limited to 'main/src/cgeo/geocaching/gcvote/GCVote.java')
| -rw-r--r-- | main/src/cgeo/geocaching/gcvote/GCVote.java | 40 |
1 files changed, 13 insertions, 27 deletions
diff --git a/main/src/cgeo/geocaching/gcvote/GCVote.java b/main/src/cgeo/geocaching/gcvote/GCVote.java index fa17775..a053f31 100644 --- a/main/src/cgeo/geocaching/gcvote/GCVote.java +++ b/main/src/cgeo/geocaching/gcvote/GCVote.java @@ -1,7 +1,7 @@ package cgeo.geocaching.gcvote; +import cgeo.geocaching.Geocache; import cgeo.geocaching.Settings; -import cgeo.geocaching.cgCache; import cgeo.geocaching.network.Network; import cgeo.geocaching.network.Parameters; import cgeo.geocaching.utils.LeastRecentlyUsedMap; @@ -13,6 +13,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.ImmutablePair; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -38,31 +39,16 @@ public final class GCVote { * @return */ public static GCVoteRating getRating(String guid, String geocode) { - List<String> guids = null; - List<String> geocodes = null; - - if (StringUtils.isNotBlank(guid)) { - - GCVoteRating rating = ratingsCache.get(guid); - if (rating != null) { - return rating; - } - guids = new ArrayList<String>(); - guids.add(guid); - } else if (StringUtils.isNotBlank(geocode)) { - geocodes = new ArrayList<String>(); - geocodes.add(geocode); - } else { - return null; + if (StringUtils.isNotBlank(guid) && ratingsCache.containsKey(guid)) { + return ratingsCache.get(guid); } - final Map<String, GCVoteRating> ratings = getRating(guids, geocodes); - - if (MapUtils.isEmpty(ratings)) { - return null; - } + final Map<String, GCVoteRating> ratings = getRating(singletonOrNull(guid), singletonOrNull(geocode)); + return MapUtils.isNotEmpty(ratings) ? ratings.values().iterator().next() : null; + } - return ratings.values().iterator().next(); + private static List<String> singletonOrNull(final String item) { + return StringUtils.isNotBlank(item) ? Collections.singletonList(item) : null; } /** @@ -192,7 +178,7 @@ public final class GCVote { * @param vote * @return */ - public static boolean setRating(cgCache cache, double vote) { + public static boolean setRating(Geocache cache, double vote) { if (!cache.supportsGCVote()) { return false; } @@ -221,13 +207,13 @@ public final class GCVote { return result.trim().equalsIgnoreCase("ok"); } - public static void loadRatings(ArrayList<cgCache> caches) { + public static void loadRatings(ArrayList<Geocache> caches) { if (!Settings.isRatingWanted()) { return; } final ArrayList<String> guids = new ArrayList<String>(caches.size()); - for (final cgCache cache : caches) { + for (final Geocache cache : caches) { String guid = cache.getGuid(); if (StringUtils.isNotBlank(guid)) { guids.add(guid); @@ -243,7 +229,7 @@ public final class GCVote { if (MapUtils.isNotEmpty(ratings)) { // save found cache coordinates - for (cgCache cache : caches) { + for (Geocache cache : caches) { if (ratings.containsKey(cache.getGuid())) { GCVoteRating rating = ratings.get(cache.getGuid()); |
