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 }