1 /* 2 * Copyright 2012-2013 smartics, Kronseder & Reiner GmbH 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package de.smartics.properties.api.core.domain; 17 18 import de.smartics.properties.api.core.app.PropertyRootException; 19 20 /** 21 * Base exception of the library for signaling an unspecific cause that is 22 * concerned with a specific property. 23 */ 24 public class PropertyException extends PropertyRootException 25 { 26 // ********************************* Fields ********************************* 27 28 // --- constants ------------------------------------------------------------ 29 30 /** 31 * The class version identifier. 32 * <p> 33 * The value of this constant is {@value}. 34 * </p> 35 */ 36 private static final long serialVersionUID = 1L; 37 38 // --- members -------------------------------------------------------------- 39 40 /** 41 * The key of the property raising the exception. 42 * 43 * @serial 44 */ 45 private final PropertyKey propertyKey; 46 47 // ****************************** Initializer ******************************* 48 49 // ****************************** Constructors ****************************** 50 51 /** 52 * Default constructor. 53 * 54 * @param message the detail message (which is saved for later retrieval by 55 * the {@link #getMessage()} method). 56 * @param cause the cause (which is saved for later retrieval by the 57 * {@link #getCause()} method). (A <tt>null</tt> value is permitted, 58 * and indicates that the cause is nonexistent or unknown.) 59 * @param propertyKey the key of the property raising the exception. 60 * @see java.lang.RuntimeException#RuntimeException(java.lang.String,java.lang.Throwable) 61 */ 62 public PropertyException(final String message, final Throwable cause, 63 final PropertyKey propertyKey) 64 { 65 super(message, cause); 66 this.propertyKey = propertyKey; 67 } 68 69 /** 70 * Convenience constructor. 71 * 72 * @param message the detail message (which is saved for later retrieval by 73 * the {@link #getMessage()} method). 74 * @param propertyKey the key of the property raising the exception. 75 * @see java.lang.RuntimeException#RuntimeException(java.lang.String,java.lang.Throwable) 76 */ 77 public PropertyException(final String message, final PropertyKey propertyKey) 78 { 79 this(message, null, propertyKey); 80 } 81 82 /** 83 * Convenience constructor. 84 * 85 * @param cause the cause (which is saved for later retrieval by the 86 * {@link #getCause()} method). (A <tt>null</tt> value is permitted, 87 * and indicates that the cause is nonexistent or unknown.) 88 * @param propertyKey the key of the property raising the exception. 89 * @see java.lang.RuntimeException#RuntimeException(java.lang.String,java.lang.Throwable) 90 */ 91 public PropertyException(final Throwable cause, final PropertyKey propertyKey) 92 { 93 this(null, cause, propertyKey); 94 } 95 96 // ****************************** Inner Classes ***************************** 97 98 // ********************************* Methods ******************************** 99 100 // --- init ----------------------------------------------------------------- 101 102 // --- get&set -------------------------------------------------------------- 103 104 /** 105 * Returns the key of the property raising the exception. 106 * 107 * @return the key of the property raising the exception. 108 */ 109 public final PropertyKey getPropertyKey() 110 { 111 return propertyKey; 112 } 113 114 // --- business ------------------------------------------------------------- 115 116 // --- object basics -------------------------------------------------------- 117 118 }