aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo/geocaching/connector/ConnectorFactory.java
blob: 9d8f9550523707784ba4217b18d6172e04bd2c86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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()};

	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;
	}
}