Source code: net/jxta/ext/config/ConfiguratorException.java
1 /*
2 * Copyright (c) 2001 Sun Microsystems, Inc. All rights
3 * reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 *
17 * 3. The end-user documentation included with the redistribution,
18 * if any, must include the following acknowledgment:
19 * "This product includes software developed by the
20 * Sun Microsystems, Inc. for Project JXTA."
21 * Alternately, this acknowledgment may appear in the software itself,
22 * if and wherever such third-party acknowledgments normally appear.
23 *
24 * 4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA"
25 * must not be used to endorse or promote products derived from this
26 * software without prior written permission. For written
27 * permission, please contact Project JXTA at http://www.jxta.org.
28 *
29 * 5. Products derived from this software may not be called "JXTA",
30 * nor may "JXTA" appear in their name, without prior written
31 * permission of Sun.
32 *
33 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
34 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
36 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
37 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
38 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
39 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
40 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
41 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
42 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
43 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
44 * SUCH DAMAGE.
45 * ====================================================================
46 *
47 * This software consists of voluntary contributions made by many
48 * individuals on behalf of Project JXTA. For more
49 * information on Project JXTA, please see
50 * <http://www.jxta.org/>.
51 *
52 * This license is based on the BSD license adopted by the Apache Foundation.
53 *
54 * $Id: ConfiguratorException.java,v 1.2 2003/11/05 01:47:51 gonzo Exp $
55 */
56 package net.jxta.ext.config;
57
58 import java.util.ArrayList;
59 import java.util.Collections;
60 import java.util.Iterator;
61 import java.util.List;
62
63 /**
64 * @author james todd [gonzo at jxta dot org]
65 * @version $Id: ConfiguratorException.java,v 1.1 2003/11/04 21:07:26 gonzo
66 * Exp $
67 */
68
69 public class ConfiguratorException
70 extends Exception {
71
72 private List causes = null;
73
74
75 /**
76 * Constructor for the ConfiguratorException object
77 */
78 public ConfiguratorException() {
79 this(null, (Exception)null);
80 }
81
82
83 /**
84 * Constructor for the ConfiguratorException object
85 *
86 * @param msg message
87 */
88 public ConfiguratorException(String msg) {
89 this(msg, (Exception)null);
90 }
91
92
93 /**
94 * Constructor for the ConfiguratorException object
95 *
96 * @param ex cause
97 */
98 public ConfiguratorException(Throwable ex) {
99 this(null, ex);
100 }
101
102
103 /**
104 * Constructor for the ConfiguratorException object
105 *
106 * @param msg message
107 * @param ex cause
108 */
109 public ConfiguratorException(String msg, Throwable ex) {
110 super(msg, ex);
111
112 addCause(ex);
113 }
114
115
116 /**
117 * Constructor for the ConfiguratorException object
118 *
119 * @param ex causes
120 */
121 public ConfiguratorException(List ex) {
122 this(null, ex);
123 }
124
125
126 /**
127 * Constructor for the ConfiguratorException object
128 *
129 * @param msg message
130 * @param ex causes
131 */
132 public ConfiguratorException(String msg, List ex) {
133 this(msg, (Exception)null);
134
135 addCauses(ex);
136 }
137
138
139 /**
140 * Gets the causes attribute of the ConfiguratorException object
141 *
142 * @return The causes
143 */
144 public List getCauses() {
145 return this.causes != null ?
146 this.causes : Collections.EMPTY_LIST;
147 }
148
149
150 /**
151 * Add a cause
152 *
153 * @param c The feature to be added to the Cause attribute
154 */
155 public void addCause(Throwable c) {
156 if (c != null) {
157 if (this.causes == null) {
158 this.causes = new ArrayList();
159 }
160
161 this.causes.add(c);
162 }
163 }
164
165
166 /**
167 * Adds a feature to the Causes attribute of the ConfiguratorException
168 * object
169 *
170 * @param c The feature to be added to the Causes attribute
171 */
172 public void addCauses(List c) {
173 if (c != null) {
174 for (Iterator t = c.iterator(); t.hasNext(); ) {
175 addCause((Throwable)t.next());
176 }
177 }
178 }
179 }
180