Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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