aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/connector/ConnectorFactory.java
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2011-09-16 14:36:28 +0200
committerSamuel Tardieu <sam@rfc1149.net>2011-09-16 14:36:28 +0200
commit579ef7a535489d4aa632db11667a3b01deb6cafd (patch)
tree55810021c02ac7d80d3a9702ef0b59e4af154b9c /main/src/cgeo/geocaching/connector/ConnectorFactory.java
parent96ea21fd50334479c262da692038965d0e4d596a (diff)
downloadcgeo-579ef7a535489d4aa632db11667a3b01deb6cafd.zip
cgeo-579ef7a535489d4aa632db11667a3b01deb6cafd.tar.gz
cgeo-579ef7a535489d4aa632db11667a3b01deb6cafd.tar.bz2
Move sources into the main directory
This prepares the inclusion of tests into the same repository.
Diffstat (limited to 'main/src/cgeo/geocaching/connector/ConnectorFactory.java')
-rw-r--r--main/src/cgeo/geocaching/connector/ConnectorFactory.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/connector/ConnectorFactory.java b/main/src/cgeo/geocaching/connector/ConnectorFactory.java
new file mode 100644
index 0000000..867f48d
--- /dev/null
+++ b/main/src/cgeo/geocaching/connector/ConnectorFactory.java
@@ -0,0 +1,31 @@
+package cgeo.geocaching.connector;
+
+import cgeo.geocaching.cgCache;
+
+public final class ConnectorFactory {
+ private static final GCConnector GC_CONNECTOR = new GCConnector();
+ private static final IConnector[] connectors = new IConnector[] { GC_CONNECTOR, new OCConnector(), new OXConnector() };
+
+ public static IConnector[] getConnectors() {
+ return connectors;
+ }
+
+ public static boolean canHandle(final String geocode) {
+ for (IConnector connector : connectors) {
+ if (connector.canHandle(geocode)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static IConnector getConnector(cgCache cache) {
+ for (IConnector connector : connectors) {
+ if (connector.canHandle(cache.geocode)) {
+ return connector;
+ }
+ }
+ // in case of errors, assume GC as default
+ return GC_CONNECTOR;
+ }
+}