| 1 | // License: GPL. For details, see LICENSE file. |
|---|
| 2 | package org.openstreetmap.josm.io; |
|---|
| 3 | import static org.openstreetmap.josm.tools.I18n.tr; |
|---|
| 4 | |
|---|
| 5 | public class OsmApiException extends OsmTransferException { |
|---|
| 6 | |
|---|
| 7 | private int responseCode; |
|---|
| 8 | private String errorHeader; |
|---|
| 9 | private String errorBody; |
|---|
| 10 | private String accessedUrl; |
|---|
| 11 | |
|---|
| 12 | public OsmApiException() { |
|---|
| 13 | super(); |
|---|
| 14 | } |
|---|
| 15 | |
|---|
| 16 | public OsmApiException(int responseCode, String errorHeader, String errorBody) { |
|---|
| 17 | this.responseCode = responseCode; |
|---|
| 18 | this.errorHeader = errorHeader; |
|---|
| 19 | this.errorBody = errorBody; |
|---|
| 20 | } |
|---|
| 21 | |
|---|
| 22 | public OsmApiException(String message, Throwable cause) { |
|---|
| 23 | super(message, cause); |
|---|
| 24 | } |
|---|
| 25 | |
|---|
| 26 | public OsmApiException(String message) { |
|---|
| 27 | super(message); |
|---|
| 28 | } |
|---|
| 29 | |
|---|
| 30 | public OsmApiException(Throwable cause) { |
|---|
| 31 | super(cause); |
|---|
| 32 | } |
|---|
| 33 | |
|---|
| 34 | public int getResponseCode() { |
|---|
| 35 | return responseCode; |
|---|
| 36 | } |
|---|
| 37 | |
|---|
| 38 | public void setResponseCode(int responseCode) { |
|---|
| 39 | this.responseCode = responseCode; |
|---|
| 40 | } |
|---|
| 41 | |
|---|
| 42 | public String getErrorHeader() { |
|---|
| 43 | return errorHeader; |
|---|
| 44 | } |
|---|
| 45 | |
|---|
| 46 | public void setErrorHeader(String errorHeader) { |
|---|
| 47 | this.errorHeader = errorHeader; |
|---|
| 48 | } |
|---|
| 49 | |
|---|
| 50 | public String getErrorBody() { |
|---|
| 51 | return errorBody; |
|---|
| 52 | } |
|---|
| 53 | |
|---|
| 54 | public void setErrorBody(String errorBody) { |
|---|
| 55 | this.errorBody = errorBody; |
|---|
| 56 | } |
|---|
| 57 | |
|---|
| 58 | @Override |
|---|
| 59 | public String getMessage() { |
|---|
| 60 | StringBuilder sb = new StringBuilder(); |
|---|
| 61 | sb.append("ResponseCode=") |
|---|
| 62 | .append(responseCode); |
|---|
| 63 | String eh = ""; |
|---|
| 64 | try |
|---|
| 65 | { |
|---|
| 66 | if(errorHeader != null) |
|---|
| 67 | eh = tr(errorHeader.trim()); |
|---|
| 68 | if (!eh.isEmpty()) { |
|---|
| 69 | sb.append(", Error Header=<") |
|---|
| 70 | .append(eh) |
|---|
| 71 | .append(">"); |
|---|
| 72 | } |
|---|
| 73 | } |
|---|
| 74 | catch (Exception e) { |
|---|
| 75 | } |
|---|
| 76 | try |
|---|
| 77 | { |
|---|
| 78 | String eb = errorBody != null ? tr(errorBody.trim()) : ""; |
|---|
| 79 | if (!eb.isEmpty() && !eb.equals(eh)) { |
|---|
| 80 | sb.append(", Error Body=<") |
|---|
| 81 | .append(eb) |
|---|
| 82 | .append(">"); |
|---|
| 83 | } |
|---|
| 84 | } |
|---|
| 85 | catch (Exception e) { |
|---|
| 86 | } |
|---|
| 87 | return sb.toString(); |
|---|
| 88 | } |
|---|
| 89 | |
|---|
| 90 | /** |
|---|
| 91 | * Replies a message suitable to be displayed in a message dialog |
|---|
| 92 | * |
|---|
| 93 | * @return a message which is suitable to be displayed in a message dialog |
|---|
| 94 | */ |
|---|
| 95 | public String getDisplayMessage() { |
|---|
| 96 | StringBuilder sb = new StringBuilder(); |
|---|
| 97 | if (errorHeader != null) { |
|---|
| 98 | sb.append(tr(errorHeader)); |
|---|
| 99 | sb.append(tr("(Code={0})", responseCode)); |
|---|
| 100 | } else if (errorBody != null && !errorBody.trim().equals("")) { |
|---|
| 101 | errorBody = errorBody.trim(); |
|---|
| 102 | sb.append(tr(errorBody)); |
|---|
| 103 | sb.append(tr("(Code={0})", responseCode)); |
|---|
| 104 | } else { |
|---|
| 105 | sb.append(tr("The server replied an error with code {0}.", responseCode)); |
|---|
| 106 | } |
|---|
| 107 | return sb.toString(); |
|---|
| 108 | } |
|---|
| 109 | |
|---|
| 110 | public void setAccessedUrl(String url) { |
|---|
| 111 | this.accessedUrl = url; |
|---|
| 112 | } |
|---|
| 113 | |
|---|
| 114 | public String getAccessedUrl() { |
|---|
| 115 | return accessedUrl; |
|---|
| 116 | } |
|---|
| 117 | } |
|---|