1 /*** 2 * Ambient - A music player for the Android platform 3 Copyright (C) 2007 Martin Vysny 4 5 This program is free software: you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation, either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 19 package sk.baka.ambient.collection.ampache; 20 21 import java.util.HashMap; 22 import java.util.Map; 23 24 /*** 25 * Error communicating with ampache. 26 * 27 * @author Martin Vysny 28 */ 29 public final class AmpacheException extends Exception { 30 private static final long serialVersionUID = 6318537191144874353L; 31 32 private static final Map<String, String> errorMessages = new HashMap<String, String>(); 33 34 /*** 35 * The error message. 36 */ 37 public final String errorMsg; 38 39 static { 40 errorMessages.put("501", "ACL DISABLED"); 41 errorMessages.put("401", "HANDSHAKE FAILED"); 42 errorMessages.put("403", "ACCESS DENIED"); 43 errorMessages.put("405", "UNKNOWN METHOD"); 44 } 45 46 /*** 47 * Creates new exception from given error code. 48 * 49 * @param errorCode 50 * the code 51 * @param errorMsg 52 * error message as sent from the server. 53 */ 54 public AmpacheException(final String errorCode, final String errorMsg) { 55 super(errorCode + " " + getMessage(errorCode) + ": " + errorMsg); 56 this.errorCode = errorCode; 57 this.errorMsg = errorMsg; 58 } 59 60 /*** 61 * The error code. 62 */ 63 public final String errorCode; 64 65 private static String getMessage(final String errorCode) { 66 final String result = errorMessages.get(errorCode); 67 if (result != null) { 68 return result; 69 } 70 return ""; 71 } 72 }