aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/connector/ConnectorFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/connector/ConnectorFactory.java')
-rw-r--r--main/src/cgeo/geocaching/connector/ConnectorFactory.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/connector/ConnectorFactory.java b/main/src/cgeo/geocaching/connector/ConnectorFactory.java
index 788df13..2ad4de2 100644
--- a/main/src/cgeo/geocaching/connector/ConnectorFactory.java
+++ b/main/src/cgeo/geocaching/connector/ConnectorFactory.java
@@ -4,6 +4,8 @@ import cgeo.geocaching.cgCache;
import cgeo.geocaching.connector.opencaching.ApiOpenCachingConnector;
import cgeo.geocaching.connector.opencaching.OpenCachingConnector;
+import org.apache.commons.lang3.StringUtils;
+
public final class ConnectorFactory {
private static final GCConnector GC_CONNECTOR = new GCConnector();
private static final IConnector[] connectors = new IConnector[] {
@@ -18,7 +20,8 @@ public final class ConnectorFactory {
new OpenCachingConnector("OpenCaching.NL", "www.opencaching.nl", "OB"),
new ApiOpenCachingConnector("OpenCaching.PL", "www.opencaching.pl", "OP", "GkxM47WkUkLQXXsZ9qSh"),
new ApiOpenCachingConnector("OpenCaching.US", "www.opencaching.us", "OU", "pTsYAYSXFcfcRQnYE6uA"),
- new OXConnector()
+ new OXConnector(),
+ new GeocachingAustraliaConnector()
};
public static IConnector[] getConnectors() {
@@ -26,6 +29,9 @@ public final class ConnectorFactory {
}
public static boolean canHandle(final String geocode) {
+ if (isInvalidGeocode(geocode)) {
+ return false;
+ }
for (IConnector connector : connectors) {
if (connector.canHandle(geocode)) {
return true;
@@ -39,6 +45,9 @@ public final class ConnectorFactory {
}
public static IConnector getConnector(String geocode) {
+ if (isInvalidGeocode(geocode)) {
+ return GC_CONNECTOR;
+ }
for (IConnector connector : connectors) {
if (connector.canHandle(geocode)) {
return connector;
@@ -47,4 +56,11 @@ public final class ConnectorFactory {
// in case of errors, assume GC as default
return GC_CONNECTOR;
}
+
+ private static boolean isInvalidGeocode(final String geocode) {
+ if (StringUtils.isBlank(geocode) || geocode.length() <= 2) {
+ return true;
+ }
+ return false;
+ }
}