01: /******************************************************************************
02: * JBoss, a division of Red Hat *
03: * Copyright 2006, Red Hat Middleware, LLC, and individual *
04: * contributors as indicated by the @authors tag. See the *
05: * copyright.txt in the distribution for a full listing of *
06: * individual contributors. *
07: * *
08: * This is free software; you can redistribute it and/or modify it *
09: * under the terms of the GNU Lesser General Public License as *
10: * published by the Free Software Foundation; either version 2.1 of *
11: * the License, or (at your option) any later version. *
12: * *
13: * This software is distributed in the hope that it will be useful, *
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
16: * Lesser General Public License for more details. *
17: * *
18: * You should have received a copy of the GNU Lesser General Public *
19: * License along with this software; if not, write to the Free *
20: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
21: * 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
22: ******************************************************************************/package org.jboss.portal.widget.exceptions;
23:
24: import java.net.URL;
25: import java.util.Locale;
26: import java.util.Map;
27:
28: import org.jboss.portal.common.i18n.LocalizedString;
29: import org.jboss.portal.widget.Widget;
30:
31: /**
32: * @author <a href="mailto:emuckenh@redhat.com">Emanuel Muckenhuber</a>
33: * @version $Revision$
34: */
35: public class WidgetFailure implements Widget {
36:
37: /** . */
38: private final URL url;
39:
40: /** . */
41: private final Exception e;
42:
43: public WidgetFailure(URL url, Exception e) {
44: this .url = url;
45: this .e = e;
46: }
47:
48: public String getMessage() {
49: return e.getMessage();
50: }
51:
52: public Throwable getCause() {
53: return e.getCause();
54: }
55:
56: public String getId() {
57: return url.toString();
58: }
59:
60: public String render(Map parameters) {
61: return render(parameters, null);
62: }
63:
64: public String render(Map parameters, Locale locale) {
65: return getLocalizedErrorMessage(locale);
66: }
67:
68: public String getLocalizedErrorMessage(Locale locale) {
69: String urlString = url != null ? url.toString() : null;
70: Throwable cause = e.getCause();
71: if (cause instanceof WidgetException) {
72: if (cause instanceof WidgetNotSupportedException) {
73: return "This widget type is not supported: "
74: + urlString;
75: } else if (cause instanceof WidgetFetchException) {
76: return "Failed to fetch Widget: " + urlString;
77: } else {
78: return "Error while retreiving Widget: " + urlString;
79: }
80: } else {
81: return "Error getting Widget: " + urlString;
82: }
83: }
84:
85: public LocalizedString getDescription() {
86: // FIXME getDescription
87: return null;
88: }
89:
90: public LocalizedString getTitle() {
91: // FIXME getTitle
92: return null;
93: }
94: }
|