1 /* Copyright 2002-2005 Elliotte Rusty Harold
2 
3    This library is free software; you can redistribute it and/or modify
4    it under the terms of version 2.1 of the GNU Lesser General Public
5    License as published by the Free Software Foundation.
6 
7    This library is distributed in the hope that it will be useful,
8    but WITHOUT ANY WARRANTY; without even the implied warranty of
9    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10    GNU Lesser General Public License for more details.
11 
12    You should have received a copy of the GNU Lesser General Public
13    License along with this library; if not, write to the
14    Free Software Foundation, Inc., 59 Temple Place, Suite 330,
15    Boston, MA 02111-1307  USA
16 
17    You can contact Elliotte Rusty Harold by sending e-mail to
18    elharo@ibiblio.org. Please include the word "XOM" in the
19    subject line. The XOM home page is located at http://www.xom.nu/
20 */
21 
22 package nu.xom;
23 
24 /**
25  * <p>
26  * Thrown when serializing documents that contain characters not
27  * available in the current encoding, and which cannot be escaped
28  * (for instance, because they're in an element name or processing
29  * instruction data). This can never happen if the encoding is UTF-8
30  * or UTF-16.
31  * </p>
32  *
33  * @author Elliotte Rusty Harold
34  * @version 1.1b3
35  *
36  */
37 public class UnavailableCharacterException extends XMLException {
38 
39 
40     private static final long serialVersionUID = -8280912714497572798L;
41 
42     private final char   unavailableCharacter;
43     private final String encoding;
44 
45 
46     /**
47      * <p>
48      * Creates a new <code>UnavailableCharacterException</code>.
49      * </p>
50      *
51      * @param character the character which caused the exception
52      * @param encoding the encoding which does not contain the character
53      */
UnavailableCharacterException(char character, String encoding)54     public UnavailableCharacterException(char character, String encoding) {
55 
56         super("Cannot use the character " + character + " (&#x"
57           + Integer.toHexString(character).toUpperCase() + ";) in the "
58           + encoding + " encoding.");
59         this.unavailableCharacter = character;
60         this.encoding = encoding;
61 
62     }
63 
64 
65     /**
66      * <p>
67      * Returns the character which could not be written
68      * in the current encoding.
69      * </p>
70 
71      * @return the character which caused the exception
72      */
getCharacter()73     public char getCharacter() {
74         return this.unavailableCharacter;
75     }
76 
77 
78     /**
79      * <p>
80      * Returns the encoding that does not support the character.
81      * </p>
82      *
83      * @return the encoding used by the serializer when the exception
84      *    was thrown
85      */
getEncoding()86     public String getEncoding() {
87         return this.encoding;
88     }
89 
90 
91 }