package cgeo.geocaching.connector.tc; import cgeo.geocaching.connector.AbstractConnector; import cgeo.geocaching.models.Geocache; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import java.util.regex.Pattern; public class TerraCachingConnector extends AbstractConnector { @NonNull private static final Pattern PATTERN_GEOCODE = Pattern.compile("(TC|CC|LC)[0-9A-Z]{1,4}", Pattern.CASE_INSENSITIVE); @Override @NonNull public String getName() { return "TerraCaching"; } @Override @NonNull public String getNameAbbreviated() { return "TC"; } @Override @Nullable public String getCacheUrl(@NonNull final Geocache cache) { return getCacheUrlPrefix() + cache.getGeocode(); } @Override @NonNull public String getHost() { return "www.terracaching.com/"; } @Override public boolean getHttps() { return false; } @Override public boolean isOwner(@NonNull final Geocache cache) { return false; } @Override @NonNull protected String getCacheUrlPrefix() { return "http://www.terracaching.com/Cache/"; } @Override public boolean canHandle(@NonNull final String geocode) { return PATTERN_GEOCODE.matcher(geocode).matches(); } }