InvalidPropertyValueException.java |
/* * $Id: InvalidPropertyValueException.java,v 1.26 2011/02/12 08:22:46 agoubard Exp $ * * See the COPYRIGHT file for redistribution and use restrictions. */ package org.xins.common.collections; /** * Exception thrown to indicate the property of a value is invalid. * * @version $Revision: 1.26 $ $Date: 2011/02/12 08:22:46 $ * @author <a href="mailto:ernst@ernstdehaan.com">Ernst de Haan</a> * * @since XINS 1.0.0 * * @see MissingRequiredPropertyException */ public final class InvalidPropertyValueException extends PropertyException { /** * The (invalid) value of the property. Cannot be <code>null</code>. */ private final String _propertyValue; /** * The detailed reason. Can be <code>null</code>. */ private final String _reason; /** * Constructs a new <code>InvalidPropertyValueException</code>. * * @param propertyName * the name of the property, cannot be <code>null</code>. * * @param propertyValue * the (invalid) value set for the property, cannot be * <code>null</code>. * * @throws IllegalArgumentException * if <code>propertyName == null || propertyValue == null</code>. */ public InvalidPropertyValueException(String propertyName, String propertyValue) throws IllegalArgumentException { this(propertyName, propertyValue, null); } /** * Constructs a new <code>InvalidPropertyValueException</code> with the * specified reason. * * @param propertyName * the name of the property, cannot be <code>null</code>. * * @param propertyValue * the (invalid) value set for the property, cannot be * <code>null</code>. * * @param reason * additional description of the problem, or <code>null</code>. * * @throws IllegalArgumentException * if <code>propertyName == null || propertyValue == null</code>. */ public InvalidPropertyValueException(String propertyName, String propertyValue, String reason) throws IllegalArgumentException { // Construct message and call superclass constructor super(propertyName, createMessage(propertyName, propertyValue, reason), null); // Store data _propertyValue = propertyValue; _reason = reason; } /** * Creates message based on the specified constructor arguments. * * @param propertyName * the name of the property, cannot be <code>null</code>. * * @param propertyValue * the (invalid) value set for the property, cannot be * <code>null</code>. * * @param reason * additional description of the problem, or <code>null</code>. * * @return * the message, never <code>null</code>. */ private static String createMessage(String propertyName, String propertyValue, String reason) { // Construct the message String message = "The value \"" + propertyValue + "\" is invalid for property \"" + propertyName; if (reason == null) { message += "\"."; } else { message += "\": " + reason; } return message; } /** * Returns the (invalid) value of the property. * * @return * the value of the property, never <code>null</code>. */ public String getPropertyValue() { return _propertyValue; } /** * Returns the description of the reason. * * @return * the reason, or <code>null</code>. */ public String getReason() { return _reason; } }