1 /*
2 * DavMail POP/IMAP/SMTP/CalDav/LDAP Exchange Gateway
3 * Copyright (C) 2009 Mickael Guessant
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (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, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 */
19 package davmail.exception;
20
21 import davmail.BundleMessage;
22
23 import java.io.IOException;
24 import java.util.Locale;
25
26 /**
27 * I18 IOException subclass.
28 */
29 public class DavMailException extends IOException {
30 private final BundleMessage message;
31
32 /**
33 * Create a DavMail exception with the given BundleMessage key and arguments.
34 *
35 * @param key message key
36 * @param arguments message values
37 */
38 public DavMailException(String key, Object... arguments) {
39 this.message = new BundleMessage(key, arguments);
40 }
41
42 /**
43 * Get formatted message
44 *
45 * @return english formatted message
46 */
47 @Override
48 public String getMessage() {
49 return message.formatLog();
50 }
51
52 /**
53 * Get formatted message using locale.
54 *
55 * @param locale locale
56 * @return localized formatted message
57 */
58 public String getMessage(Locale locale) {
59 return message.format(locale);
60 }
61
62 /**
63 * Get internal exception BundleMessage.
64 *
65 * @return unformatted message
66 */
67 public BundleMessage getBundleMessage() {
68 return message;
69 }
70 }