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 }