001 /*
002 * jDTAUS Core API
003 * Copyright (c) 2005 Christian Schulte
004 *
005 * Christian Schulte, Haldener Strasse 72, 58095 Hagen, Germany
006 * <schulte2005@users.sourceforge.net> (+49 2331 3543887)
007 *
008 * This library is free software; you can redistribute it and/or
009 * modify it under the terms of the GNU Lesser General Public
010 * License as published by the Free Software Foundation; either
011 * version 2.1 of the License, or any later version.
012 *
013 * This library is distributed in the hope that it will be useful,
014 * but WITHOUT ANY WARRANTY; without even the implied warranty of
015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
016 * Lesser General Public License for more details.
017 *
018 * You should have received a copy of the GNU Lesser General Public
019 * License along with this library; if not, write to the Free Software
020 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
021 *
022 */
023 package org.jdtaus.core.container;
024
025 import java.util.Locale;
026
027 /**
028 * Gets thrown for inheritance constraint violations.
029 * <p>An {@code Implementation} is only allowed to be the parent of another
030 * implementation if the value of property {@code final} is {@code false}.
031 * This exception gets thrown for any implementation violating this
032 * constraint.</p>
033 *
034 * @author <a href="mailto:schulte2005@users.sourceforge.net">Christian Schulte</a>
035 * @version $Id: InheritanceConstraintException.java 8044 2009-07-02 01:29:05Z schulte2005 $
036 *
037 * @see Implementation#getParent()
038 * @see Implementation#isFinal()
039 */
040 public class InheritanceConstraintException extends IllegalStateException
041 {
042 //--Constants---------------------------------------------------------------
043
044 /** Serial version UID for backwards compatibility with 1.2.x classes. */
045 private static final long serialVersionUID = 8681879454481971406L;
046
047 //---------------------------------------------------------------Constants--
048 //--Constructors------------------------------------------------------------
049
050 /**
051 * Creates a new {@code InheritanceConstraintException} instance
052 * taking the identifier of the implementation violating the constraint.
053 *
054 * @param implementationIdentifier identifier of the implementation
055 * violating the constraint.
056 */
057 public InheritanceConstraintException(
058 final String implementationIdentifier )
059 {
060 super( InheritanceConstraintExceptionBundle.getInstance().
061 getInheritanceConstraintMessage( Locale.getDefault(),
062 implementationIdentifier ) );
063
064 this.implementationIdentifier = implementationIdentifier;
065 }
066
067 //------------------------------------------------------------Constructors--
068 //--InheritanceConstraintException------------------------------------------
069
070 /**
071 * Identifier of the implementation violating the constraint.
072 * @serial
073 */
074 private final String implementationIdentifier;
075
076 /**
077 * Gets the identifier of the implementation violating the constraint.
078 *
079 * @return identifier of the implementation violating the constraint.
080 */
081 public String getImplementationIdentifier()
082 {
083 return this.implementationIdentifier;
084 }
085
086 //------------------------------------------InheritanceConstraintException--
087 }