aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/files/LocParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/files/LocParser.java')
-rw-r--r--main/src/cgeo/geocaching/files/LocParser.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/files/LocParser.java b/main/src/cgeo/geocaching/files/LocParser.java
index bca7dcf..a5a4b9c 100644
--- a/main/src/cgeo/geocaching/files/LocParser.java
+++ b/main/src/cgeo/geocaching/files/LocParser.java
@@ -31,8 +31,10 @@ import java.util.Set;
public final class LocParser extends FileParser {
+ @NonNull
private static final String NAME_OWNER_SEPARATOR = " by ";
+ @NonNull
private static final CacheSize[] SIZES = {
CacheSize.NOT_CHOSEN, // 1
CacheSize.MICRO, // 2
@@ -45,16 +47,17 @@ public final class LocParser extends FileParser {
};
// Used so that the initial value of the geocache is not null. Never filled.
+ @NonNull
private static final Geocache DUMMY_GEOCACHE = new Geocache();
- private int listId;
+ private final int listId;
public static void parseLoc(final SearchResult searchResult, final String fileContent, final Set<Geocache> caches) {
final Map<String, Geocache> cidCoords = parseLoc(fileContent);
// save found cache coordinates
final HashSet<String> contained = new HashSet<>();
- for (String geocode : searchResult.getGeocodes()) {
+ for (final String geocode : searchResult.getGeocodes()) {
if (cidCoords.containsKey(geocode)) {
contained.add(geocode);
}
@@ -70,10 +73,12 @@ public final class LocParser extends FileParser {
}
}
+ @NonNull
private static Map<String, Geocache> parseLoc(final String content) {
return parseLoc(new ByteArrayInputStream(content.getBytes(Charsets.UTF_8)));
}
+ @NonNull
private static Map<String, Geocache> parseLoc(final InputStream content) {
try {
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
@@ -146,22 +151,24 @@ public final class LocParser extends FileParser {
cache.setOwnerUserId(coord.getOwnerUserId());
}
+ @NonNull
public static Geopoint parsePoint(final String latitude, final String longitude) {
// the loc file contains the coordinates as plain floating point values, therefore avoid using the GeopointParser
try {
return new Geopoint(Double.valueOf(latitude), Double.valueOf(longitude));
- } catch (NumberFormatException e) {
+ } catch (final NumberFormatException e) {
Log.e("LOC format has changed", e);
}
// fall back to parser, just in case the format changes
return new Geopoint(latitude, longitude);
}
- public LocParser(int listId) {
+ public LocParser(final int listId) {
this.listId = listId;
}
@Override
+ @NonNull
public Collection<Geocache> parse(@NonNull final InputStream stream, @Nullable final CancellableHandler progressHandler) throws IOException, ParserException {
final int maxSize = stream.available();
final Map<String, Geocache> coords = parseLoc(stream);