View Javadoc

1   /*
2    * $Id: ConversionException.java,v 1.3 2004/04/04 18:27:45 eelco12 Exp $
3    * $Revision: 1.3 $
4    * $Date: 2004/04/04 18:27:45 $
5    *
6    * ====================================================================
7    * Copyright (c) 2003, Open Edge B.V.
8    * All rights reserved.
9    * Redistribution and use in source and binary forms, with or without 
10   * modification, are permitted provided that the following conditions are met:
11   * Redistributions of source code must retain the above copyright notice, 
12   * this list of conditions and the following disclaimer. Redistributions 
13   * in binary form must reproduce the above copyright notice, this list of 
14   * conditions and the following disclaimer in the documentation and/or other 
15   * materials provided with the distribution. Neither the name of OpenEdge B.V. 
16   * nor the names of its contributors may be used to endorse or promote products 
17   * derived from this software without specific prior written permission.
18   * 
19   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
20   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
21   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
22   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
23   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
24   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
25   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
26   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
27   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
28   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
29   * THE POSSIBILITY OF SUCH DAMAGE.
30   */
31  package nl.openedge.baritus.converters;
32  
33  /***
34   * Modified ConversionException that saves the desired pattern as an extra field
35   * @author Eelco Hillenius
36   */
37  public final class ConversionException extends RuntimeException
38  {
39  
40  	private String desiredPattern;
41  
42  	/***
43  	 * Construct exception with message.
44  	 * @param message message
45  	 */
46  	public ConversionException(String message)
47  	{
48  		super(message);
49  	}
50  	
51  	/***
52  	 * Construct exception with message and desired pattern.
53  	 * @param message message
54  	 * @param desiredPattern the desired pattern
55  	 */
56  	public ConversionException(String message, String desiredPattern)
57  	{
58  		super(message);
59  		setDesiredPattern(desiredPattern);
60  	}
61  
62  	/***
63  	 * Construct exception with message and cause.
64  	 * @param message message
65  	 * @param cause cause
66  	 */
67  	public ConversionException(String message, Throwable cause)
68  	{
69  		super(message, cause);
70  	}
71  	
72  	/***
73  	 * Construct exception with message, cause and desired pattern.
74  	 * @param message message
75  	 * @param cause cause
76  	 * @param desiredPattern the desired pattern
77  	 */
78  	public ConversionException(String message, Throwable cause, String desiredPattern)
79  	{
80  		super(message, cause);
81  		setDesiredPattern(desiredPattern);
82  	}
83  
84  	/***
85  	 * Construct exception with cause.
86  	 * @param cause cause
87  	 */
88  	public ConversionException(Throwable cause)
89  	{
90  		super(cause);
91  	}
92  	
93  	/***
94  	 * Construct exception with cause and desired pattern.
95  	 * @param cause cause
96  	 * @param desiredPattern the desired pattern
97  	 */
98  	public ConversionException(Throwable cause, String desiredPattern)
99  	{
100 		super(cause);
101 		setDesiredPattern(desiredPattern);
102 	}
103 
104 	/***
105 	 * Get the desired pattern.
106 	 * @return String optionally the desired pattern
107 	 */
108 	public String getDesiredPattern()
109 	{
110 		return desiredPattern;
111 	}
112 
113 	/***
114 	 * Set the desired pattern.
115 	 * @param string the desired pattern
116 	 */
117 	public void setDesiredPattern(String string)
118 	{
119 		desiredPattern = string;
120 	}
121 
122 	/***
123 	 * String representation of the exception.
124 	 * @return String string representation
125 	 */
126 	public String toString() 
127 	{
128 		String s = getClass().getName();
129 		String message = getLocalizedMessage();
130 		message = (message != null) ? (s + ": " + message) : s;
131 		
132 		if(getDesiredPattern() != null)
133 		{
134 			message += "; pattern should be: " + getDesiredPattern();
135 		}
136 		
137 		return message;
138 	}
139 
140 }