KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > dspace > content > packager > PackageException


1 /*
2  * PackageException.java
3  *
4  * Version: $Revision: 1.1 $
5  *
6  * Date: $Date: 2006/02/13 10:33:49 $
7  *
8  * Copyright (c) 2002-2005, Hewlett-Packard Company and Massachusetts
9  * Institute of Technology. All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions are
13  * met:
14  *
15  * - Redistributions of source code must retain the above copyright
16  * notice, this list of conditions and the following disclaimer.
17  *
18  * - Redistributions in binary form must reproduce the above copyright
19  * notice, this list of conditions and the following disclaimer in the
20  * documentation and/or other materials provided with the distribution.
21  *
22  * - Neither the name of the Hewlett-Packard Company nor the name of the
23  * Massachusetts Institute of Technology nor the names of their
24  * contributors may be used to endorse or promote products derived from
25  * this software without specific prior written permission.
26  *
27  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
32  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
33  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
34  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
35  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
36  * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
37  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
38  * DAMAGE.
39  */

40
41 package org.dspace.content.packager;
42
43 import java.io.PrintWriter JavaDoc;
44 import java.io.StringWriter JavaDoc;
45
46 import org.apache.log4j.Logger;
47
48 /**
49  * This is a superclass for exceptions representing a failure when
50  * importing or exporting a package. E.g., unacceptable package format
51  * or contents. Implementations should throw one of the more specific
52  * exceptions. This class is intended for declarations and catch clauses.
53  *
54  * @author Larry Stone
55  * @version $Revision: 1.1 $
56  */

57 public class PackageException extends Exception JavaDoc
58 {
59     /**
60      * Create a new exception with the given message.
61      * @param s - diagnostic message.
62      */

63     public PackageException()
64     {
65         super();
66     }
67
68     public PackageException(String JavaDoc message)
69     {
70         super(message);
71     }
72
73     public PackageException(Throwable JavaDoc cause)
74     {
75         super(cause);
76     }
77
78     /**
79      * Create a new exception wrapping it around another exception.
80      * @param e - exception specifying the cause of this failure.
81      */

82     public PackageException(String JavaDoc message, Throwable JavaDoc cause)
83     {
84         super(message, cause);
85     }
86
87     /**
88      * Write details of this exception to the indicated logger.
89      * Dump a stack trace to the log to aid in debugging.
90      */

91     public void log(Logger log)
92     {
93         log.error(toString());
94
95         Throwable JavaDoc cause = getCause();
96         if (cause != null)
97         {
98             if (cause.getCause() != null)
99                 cause = cause.getCause();
100             StringWriter JavaDoc sw = new StringWriter JavaDoc();
101             cause.printStackTrace(new PrintWriter JavaDoc(sw));
102             log.error(sw.toString());
103         }
104     }
105
106     public String JavaDoc toString()
107     {
108         String JavaDoc base = getClass().getName() + ": " + getMessage();
109         return (getCause() == null) ? base :
110             base + ", Reason: "+getCause().toString();
111     }
112 }
113
Popular Tags