// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.io; import static org.openstreetmap.josm.tools.I18n.tr; import org.openstreetmap.josm.Main; /** * Online resources directly used by JOSM. * This does not include websites where user can sometimes be redirected through its web browser, * but only those to we establish a connection. * * @since 7434 */ public enum OnlineResource { /** The OSM API, used for download, upload, history, etc. */ OSM_API(tr("OSM API")), /** The JOSM website, used for startup page, imagery/presets/styles/rules entries, help, etc. */ JOSM_WEBSITE(tr("JOSM website")), /** Value used to represent all online resources */ ALL(tr("All")); private final String locName; OnlineResource(String locName) { this.locName = locName; } /** * Replies the localized name. * @return the localized name */ public final String getLocName() { return locName; } /** * Ensures resource is not accessed in offline mode. * @param downloadString The attempted download string * @param resourceString The resource download string that should not be accessed * @throws OfflineAccessException if resource is accessed in offline mode, in any protocol */ public final void checkOfflineAccess(String downloadString, String resourceString) { if (Main.isOffline(this) && downloadString.substring(downloadString.indexOf("://")) .startsWith(resourceString.substring(resourceString.indexOf("://")))) { throw new OfflineAccessException(tr("Unable to access ''{0}'': {1} not available (offline mode)", downloadString, getLocName())); } } }