FormatException.java |
/* * $Id: FormatException.java,v 1.19 2010/09/29 17:21:48 agoubard Exp $ * * See the COPYRIGHT file for redistribution and use restrictions. */ package org.xins.common.text; import org.xins.common.MandatoryArgumentChecker; /** * Exception thrown if a character string does not match a certain format. * * @version $Revision: 1.19 $ $Date: 2010/09/29 17:21:48 $ * @author <a href="mailto:ernst@ernstdehaan.com">Ernst de Haan</a> * * @since XINS 1.0.0 */ public final class FormatException extends RuntimeException { /** * The string that is considered invalid. Cannot be <code>null</code>. */ private final String _string; /** * The reason for the string to be considered invalid. Can be * <code>null</code>. */ private final String _reason; /** * Constructs a <code>FormatException</code>. * * @param string * the character string that mismatches the format, cannot be * <code>null</code>. * * @param reason * description of the problem, can be <code>null</code>. * * @throws IllegalArgumentException * if <code>s == null</code>. */ public FormatException(String string, String reason) throws IllegalArgumentException { // Call superclass super(createMessage(string, reason)); // Store information _string = string; _reason = reason; } /** * Creates a message for the constructor. * * @param string * the character string that mismatches the format, cannot be * <code>null</code>. * * @param reason * description of the problem, can be <code>null</code>. * * @throws IllegalArgumentException * if <code>string == null</code>. * * @return * the message the constructor can pass up to the superclass * constructor, never <code>null</code>. */ private static String createMessage(String string, String reason) throws IllegalArgumentException { // Check the precondition MandatoryArgumentChecker.check("string", string); String message = "The string \"" + string + "\" is invalid."; if (reason != null) { message += " Reason: " + reason; } return message; } /** * Returns the string that is considered invalid. * * @return * the string that is considered invalid, cannot be <code>null</code>. */ public String getString() { return _string; } /** * Returns the reason. * * @return * the reason for the string to be considered invalid, can be * <code>null</code>. */ public String getReason() { return _reason; } }