KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > groboutils > mbtf > v1 > engine > ErrorImpl


1 /*
2  * @(#)ErrorImpl.java
3  *
4  * Copyright (C) 2002-2003 Matt Albrecht
5  * groboclown@users.sourceforge.net
6  * http://groboutils.sourceforge.net
7  *
8  * Part of the GroboUtils package at:
9  * http://groboutils.sourceforge.net
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining a
12  * copy of this software and associated documentation files (the "Software"),
13  * to deal in the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15  * and/or sell copies of the Software, and to permit persons to whom the
16  * Software is furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included in
19  * all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27  * DEALINGS IN THE SOFTWARE.
28  */

29 package net.sourceforge.groboutils.mbtf.v1.engine;
30
31
32 import java.io.StringWriter JavaDoc;
33 import java.io.PrintWriter JavaDoc;
34
35 import net.sourceforge.groboutils.mbtf.v1.IError;
36 import net.sourceforge.groboutils.mbtf.v1.IPathHistory;
37
38
39 /**
40  * Immutible IError implementation.
41  *
42  * @author Matt Albrecht <a HREF="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a>
43  * @version $Date: 2003/02/10 22:52:26 $
44  * @since June 12, 2002
45  */

46 public class ErrorImpl implements IError
47 {
48     private IPathHistory pathHistory;
49     private Throwable JavaDoc err;
50     private String JavaDoc msg;
51     
52     
53     public ErrorImpl( String JavaDoc msg, Throwable JavaDoc err, IPathHistory ph )
54     {
55         this.msg = msg;
56         this.err = err;
57         this.pathHistory = ph;
58     }
59     
60     
61     /**
62      * The path history at the time of the error, if any history was known.
63      *
64      * @return the path history, or <tt>null</tt>.
65      */

66     public IPathHistory getPathHistory()
67     {
68         return this.pathHistory;
69     }
70     
71     
72     /**
73      * Returns the <tt>Throwable</tt> registered with the error report, if
74      * any.
75      *
76      * @return the registered throwable, or <tt>null</tt>.
77      */

78     public Throwable JavaDoc getThrowable()
79     {
80         return this.err;
81     }
82     
83     
84     /**
85      * Returns the human-readable message associated with the error, if any.
86      *
87      * @return the human-readable message, or <tt>null</tt>.
88      */

89     public String JavaDoc getMessage()
90     {
91         return this.msg;
92     }
93     
94     
95     public String JavaDoc toString()
96     {
97         String JavaDoc ls = System.getProperty("line.separator");
98         if (ls == null)
99         {
100             ls = "\n";
101         }
102         StringBuffer JavaDoc sb = new StringBuffer JavaDoc( "ERROR: " );
103         if (getMessage() != null)
104         {
105             sb.append( getMessage() );
106             sb.append( ":" );
107         }
108         sb.append( ls );
109         if (getThrowable() != null)
110         {
111             StringWriter JavaDoc sw = new StringWriter JavaDoc();
112             PrintWriter JavaDoc pw = new PrintWriter JavaDoc( sw );
113             getThrowable().printStackTrace( pw );
114             
115             sb.append( sw.toString() );
116         }
117         if (getPathHistory() != null)
118         {
119             sb.append("at").append( ls ).append( getPathHistory() );
120         }
121         
122         return sb.toString();
123     }
124 }
125
126
Popular Tags