aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/gcvote/GCVote.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/gcvote/GCVote.java')
-rw-r--r--main/src/cgeo/geocaching/gcvote/GCVote.java40
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());