OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [classpath/] [javax/] [naming/] [NamingException.java] - Blame information for rev 772

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 772 jeremybenn
/* NamingException.java -- Superclass of all naming Exceptions
2
   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
 
38
package javax.naming;
39
 
40
import gnu.java.lang.CPStringBuilder;
41
 
42
import java.io.PrintStream;
43
import java.io.PrintWriter;
44
 
45
/**
46
 * Superclass of all naming Exceptions.
47
 * Can contain extra information about the root cause of this exception
48
 * (for example when the original exception was not a subclass of
49
 * <code>NamingException</code>), the part of the <code>Name</code> that
50
 * could be resolved (including the <code>Object</code> it resolved to)
51
 * and the part of the <code>Name</code> that could not be resolved when
52
 * the exception occured.
53
 *
54
 * @since 1.3
55
 * @author Anthony Green (green@redhat.com)
56
 * @author Mark Wielaard (mark@klomp.org)
57
 */
58
public class NamingException extends Exception
59
{
60
  private static final long serialVersionUID = -1299181962103167177L;
61
 
62
  /**
63
   * The root cause of this exception. Might be null. Set by calling
64
   * <code>setRootCause()</code>, can be accessed by calling
65
   * <code>getRootCause()</code>.
66
   */
67
  protected Throwable rootException;
68
 
69
  /**
70
   * If the exception was caused while resolving a <code>Name</code> then
71
   * this field contains that part of the name that could be resolved.
72
   * Field might be null. Set by calling <code>setResolvedName()</code>.
73
   * Can be accessed by calling <code>getResolvedName</code>.
74
   */
75
  protected Name resolvedName;
76
 
77
  /**
78
   * If the exception was caused while resolving a <code>Name</code> then
79
   * this field contains the object that part of the name could be resolved to.
80
   * Field might be null. Set by calling <code>setResolvedObj()</code>.
81
   * Can be accessed by calling <code>getResolvedObj</code>.
82
   */
83
  protected Object resolvedObj;
84
 
85
  /**
86
   * If the exception was caused while resolving a <code>Name</code> then
87
   * this field contains that part of the name that could not be resolved.
88
   * Field might be null. Set by calling <code>setRemainingName()</code>.
89
   * The field can be extended by calling <code>appendRemainingName()</code>
90
   * or <code>appendRemainingComponent()</code>.
91
   * Can be accessed by calling <code>getRemainingName</code>.
92
   */
93
  protected Name remainingName;
94
 
95
  /**
96
   * Creates a new NamingException without a message. Does not set any of the
97
   * <code>rootException</code>, <code>resolvedName</code>,
98
   * <code>resolvedObj</code> or <code>remainingObject</code> fields.
99
   * These fields can be set later.
100
   */
101
  public NamingException ()
102
  {
103
    super();
104
  }
105
 
106
  /**
107
   * Creates a new NamingException with a detailed message. Does not set
108
   * the <code>rootException</code>, <code>resolvedName</code>,
109
   * <code>resolvedObj</code> or <code>remainingObject,</code> fields.
110
   * These fields can be set later.
111
   */
112
  public NamingException (String msg)
113
  {
114
    super(msg);
115
  }
116
 
117
  /**
118
   * Gets the root cause field <code>rootException</code> of this Exception.
119
   */
120
  public Throwable getRootCause ()
121
  {
122
    return rootException;
123
  }
124
 
125
  /**
126
   * Sets the root cause field <code>rootException</code> of this Exception.
127
   */
128
  public void setRootCause (Throwable e)
129
  {
130
    rootException = e;
131
  }
132
 
133
  /**
134
   * Gets the part of the name that could be resolved before this exception
135
   * happend. Returns the <code>resolvedName</code> field of this Exception.
136
   */
137
  public Name getResolvedName ()
138
  {
139
    return resolvedName;
140
  }
141
 
142
  /**
143
   * Sets the part of the name that could be resolved before this exception
144
   * happend. Sets the <code>resolvedName</code> field of this Exception.
145
   */
146
  public void setResolvedName (Name name)
147
  {
148
    resolvedName = name;
149
  }
150
 
151
  /**
152
   * Gets the Object to which (part of) the name could be resolved before this
153
   * exception happend. Returns the <code>resolvedObj</code> field of this
154
   * Exception.
155
   */
156
  public Object getResolvedObj ()
157
  {
158
    return resolvedObj;
159
  }
160
 
161
  /**
162
   * Sets the Object to which (part of) the name could be resolved before this
163
   * exception happend. Sets the <code>resolvedObj</code> field of this
164
   * Exception.
165
   */
166
  public void setResolvedObj (Object o)
167
  {
168
    resolvedObj = o;
169
  }
170
 
171
  /**
172
   * Gets the part of the name that could not be resolved before this exception
173
   * happend. Returns the <code>remainingName</code> field of this Exception.
174
   */
175
  public Name getRemainingName ()
176
  {
177
    return remainingName;
178
  }
179
 
180
  /**
181
   * Sets the part of the name that could be resolved before this exception
182
   * happend. Sets the <code>resolvedName</code> field of this Exception.
183
   * The field can be extended by calling <code>appendRemainingName()</code>
184
   * or <code>appendRemainingComponent()</code>.
185
   */
186
  public void setRemainingName (Name name)
187
  {
188
    remainingName = name;
189
  }
190
 
191
  /**
192
   * Adds the given <code>Name</code> to the <code>remainingName</code> field.
193
   * Does nothing when <code>name</code> is null or when a
194
   * <code>InvalidNameException</code> is thrown when adding the name.
195
   *
196
   * @see Name#addAll(Name)
197
   */
198
  public void appendRemainingName (Name name)
199
  {
200
    if (name != null)
201
      try
202
        {
203
          remainingName.addAll(name);
204
        }
205
      catch(InvalidNameException ine) { /* ignored */ }
206
  }
207
 
208
  /**
209
   * Adds the given <code>String</code> to the <code>remainingName</code> field.
210
   * Does nothing when <code>name</code> is null or when a
211
   * <code>InvalidNameException</code> is thrown when adding the component.
212
   *
213
   * @see Name#add(String)
214
   */
215
  public void appendRemainingComponent (String name)
216
  {
217
    if (name != null)
218
      try
219
        {
220
          remainingName.add(name);
221
        }
222
      catch(InvalidNameException ine) { /* ignored */ }
223
  }
224
 
225
  /**
226
   * Gets the message given to the constructor or null if no message was given.
227
   *
228
   * @see Throwable#getMessage()
229
   */
230
  public String getExplanation()
231
  {
232
    return getMessage();
233
  }
234
 
235
  /**
236
   * Returns a String representation of this exception and possibly including
237
   * the part object that could be resolved if the given flag is set to true.
238
   * Always includes the root cause and the remaining name if not null.
239
   */
240
  public String toString(boolean objectInfo)
241
  {
242
    CPStringBuilder sb = new CPStringBuilder(super.toString());
243
    Throwable cause = getRootCause();
244
    if (cause != null)
245
      {
246
        sb.append(" caused by ");
247
        sb.append(cause);
248
      }
249
    Name remaining = getRemainingName();
250
    if (remaining != null)
251
      {
252
        sb.append(" [remainingName: ");
253
        sb.append(remaining);
254
      }
255
    Object resolved = getResolvedObj();
256
    if (objectInfo && resolved != null)
257
      {
258
        if (remainingName == null)
259
          sb.append(" [");
260
        else
261
          sb.append(", ");
262
        sb.append("resolvedObj: ");
263
        sb.append(resolved);
264
      }
265
    if ((remaining != null) || (objectInfo && resolved != null))
266
      sb.append(']');
267
 
268
    return sb.toString();
269
  }
270
 
271
  /**
272
   * Returns a string representation of this exception.
273
   * Calls <code>toString(false)</code>.
274
   */
275
  public String toString()
276
  {
277
    return toString(false);
278
  }
279
  /**
280
   * Prints the stacktrace of this exception or of the root cause if not null.
281
   */
282
  public void printStackTrace()
283
  {
284
    Throwable cause = getRootCause();
285
    if (cause != null)
286
      cause.printStackTrace();
287
    else
288
      super.printStackTrace();
289
  }
290
 
291
  /**
292
   * Prints the stacktrace of this exception or of the root cause if not null
293
   * to the given <code>PrintStream</code>.
294
   */
295
  public void printStackTrace(PrintStream ps)
296
  {
297
    Throwable cause = getRootCause();
298
    if (cause != null)
299
      cause.printStackTrace(ps);
300
    else
301
      super.printStackTrace(ps);
302
  }
303
 
304
  /**
305
   * Prints the stacktrace of this exception or of the root cause if not null
306
   * to the given <code>PrintWriter</code>.
307
   */
308
  public void printStackTrace(PrintWriter pw)
309
  {
310
    Throwable cause = getRootCause();
311
    if (cause != null)
312
      cause.printStackTrace(pw);
313
    else
314
      super.printStackTrace(pw);
315
  }
316
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.