diff options
Diffstat (limited to 'main/src/cgeo/geocaching/connector/ConnectorFactory.java')
| -rw-r--r-- | main/src/cgeo/geocaching/connector/ConnectorFactory.java | 18 |
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; + } } |
