001 package com.thetransactioncompany.util;
002
003
004 /**
005 * Thrown on a property parse exception. Intended to report missing or invalid
006 * properties.
007 *
008 * @see com.thetransactioncompany.util.PropertyRetriever
009 *
010 * @author Vladimir Dzhuvinov
011 */
012 public class PropertyParseException
013 extends Exception {
014
015
016 /**
017 * The key of the property that caused the exception, {@code null} if
018 * unknown or not applicable.
019 */
020 private final String propertyKey;
021
022
023 /**
024 * The value of the property that caused the exception, {@code null} if
025 * unknown or not applicable.
026 */
027 private final String propertyValue;
028
029
030 /**
031 * Creates a new property parse exception with the specified message.
032 *
033 * @param message The exception message.
034 */
035 public PropertyParseException(final String message) {
036
037 super(message);
038 propertyKey = null;
039 propertyValue = null;
040 }
041
042
043 /**
044 * Creates a new property parse exception with the specified message and
045 * property key.
046 *
047 * @param message The exception message.
048 * @param propertyKey The key of the property that caused the exception,
049 * {@code null} if unknown or not applicable.
050 */
051 public PropertyParseException(final String message, final String propertyKey) {
052
053 super(message);
054 this.propertyKey = propertyKey;
055 propertyValue = null;
056 }
057
058
059 /**
060 * Creates a new property parse exception with the specified message,
061 * property key and property value.
062 *
063 * @param message The exception message.
064 * @param propertyKey The key of the property that caused the
065 * exception, {@code null} if unknown or not
066 * applicable.
067 * @param propertyValue The value of the property that caused the
068 * exception, {@code null} if unknown or not
069 * applicable.
070 */
071 public PropertyParseException(final String message, final String propertyKey, final String propertyValue) {
072
073 super(message);
074 this.propertyKey = propertyKey;
075 this.propertyValue = propertyValue;
076 }
077
078
079 /**
080 * Returns the key of the property that caused the exception,
081 * {@code null} if unknown or not applicable.
082 *
083 * @return The key of the offending property.
084 */
085 public String getPropertyKey() {
086
087 return propertyKey;
088 }
089
090
091 /**
092 * Returns the value of the property that caused the exception,
093 * {@code null} if unknown or not applicable.
094 *
095 * @return The value of the offending property.
096 */
097 public String getPropertyValue() {
098
099 return propertyValue;
100 }
101 }