001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.io;
003
004 /**
005 * Exception thrown when a communication error with the OSM server occurs.
006 */
007 public class OsmTransferException extends Exception {
008
009 private String url = OsmApi.getOsmApi().getBaseUrl();
010
011 /**
012 * Constructs an {@code OsmTransferException} with {@code null} as its error detail message.
013 * The cause is not initialized, and may subsequently be initialized by a call to {@link #initCause}.
014 */
015 public OsmTransferException() {
016 }
017
018 /**
019 * Constructs an {@code OsmTransferException} with the specified detail message.
020 * The cause is not initialized, and may subsequently be initialized by a call to {@link #initCause}.
021 *
022 * @param message The detail message (which is saved for later retrieval by the {@link #getMessage} method)
023 */
024 public OsmTransferException(String message) {
025 super(message);
026 }
027
028 /**
029 * Constructs an {@code OsmTransferException} with the specified cause and a detail message of
030 * <tt>(cause==null ? null : cause.toString())</tt>
031 * (which typically contains the class and detail message of <tt>cause</tt>).
032 *
033 * @param cause the cause (which is saved for later retrieval by the {@link #getCause} method).
034 * A <tt>null</tt> value is permitted, and indicates that the cause is nonexistent or unknown.
035 */
036 public OsmTransferException(Throwable cause) {
037 super(cause);
038 }
039
040 /**
041 * Constructs an {@code OsmTransferException} with the specified detail message and cause.
042 *
043 * <p> Note that the detail message associated with {@code cause} is <i>not</i> automatically incorporated
044 * into this exception's detail message.
045 *
046 * @param message The detail message (which is saved for later retrieval by the {@link #getMessage} method)
047 * @param cause The cause (which is saved for later retrieval by the {@link #getCause} method).
048 * A null value is permitted, and indicates that the cause is nonexistent or unknown.
049 *
050 */
051 public OsmTransferException(String message, Throwable cause) {
052 super(message, cause);
053 }
054
055 /**
056 * Sets the URL related to this error.
057 * @param url the URL related to this error (which is saved for later retrieval by the {@link #getUrl} method).
058 */
059 public void setUrl(String url) {
060 this.url = url;
061 }
062
063 /**
064 * Gets the URL related to this error.
065 * @return API base URL or URL set using the {@link #setUrl} method
066 */
067 public String getUrl() {
068 return url;
069 }
070 }