001 /*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License"). You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at
010 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
011 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
012 * See the License for the specific language governing permissions
013 * and limitations under the License.
014 *
015 * When distributing Covered Code, include this CDDL HEADER in each
016 * file and include the License file at
017 * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
018 * add the following below this CDDL HEADER, with the fields enclosed
019 * by brackets "[]" replaced with your own identifying information:
020 * Portions Copyright [yyyy] [name of copyright owner]
021 *
022 * CDDL HEADER END
023 *
024 *
025 * Copyright 2008 Sun Microsystems, Inc.
026 */
027
028 package org.opends.server.admin;
029
030
031
032 import org.opends.messages.Message;
033
034
035
036 /**
037 * Exceptions thrown as a result of errors that occurred when decoding
038 * and modifying property values.
039 */
040 public abstract class PropertyException extends AdminRuntimeException {
041
042 /**
043 * Version ID required by serializable classes.
044 */
045 private static final long serialVersionUID = -8465109598081914482L;
046
047 // The property definition associated with the property that caused
048 // the exception.
049 private final PropertyDefinition<?> pd;
050
051
052
053 /**
054 * Creates property exception without a cause.
055 *
056 * @param pd
057 * The property definition associated with the property
058 * that caused the exception.
059 * @param message
060 * The message.
061 */
062 protected PropertyException(PropertyDefinition<?> pd, Message message) {
063 super(message);
064 this.pd = pd;
065 }
066
067
068
069 /**
070 * Creates property exception with a cause.
071 *
072 * @param pd
073 * The property definition associated with the property
074 * that caused the exception.
075 * @param message
076 * The message.
077 * @param cause
078 * The cause.
079 */
080 protected PropertyException(PropertyDefinition<?> pd, Message message,
081 Throwable cause) {
082 super(message, cause);
083 this.pd = pd;
084 }
085
086
087
088 /**
089 * Get the property definition associated with the property that
090 * caused the exception.
091 *
092 * @return Returns the property definition associated with the
093 * property that caused the exception.
094 */
095 public final PropertyDefinition<?> getPropertyDefinition() {
096 return pd;
097 }
098
099 }