package cgeo.geocaching.maps; import cgeo.geocaching.maps.interfaces.MapProvider; import cgeo.geocaching.maps.interfaces.MapSource; import android.support.annotation.NonNull; public abstract class AbstractMapSource implements MapSource { private final String name; @NonNull private final MapProvider mapProvider; private final String id; protected AbstractMapSource(final String id, @NonNull final MapProvider mapProvider, final String name) { this.id = id; this.mapProvider = mapProvider; this.name = name; } @Override public String getName() { return name; } @Override public boolean isAvailable() { return true; } @Override public String toString() { // needed for adapter in selection lists return getName(); } @Override public int getNumericalId() { return id.hashCode(); } @Override @NonNull public MapProvider getMapProvider() { return mapProvider; } }