/*
* EuroCarbDB, a framework for carbohydrate bioinformatics
*
* Copyright (c) 2006-2009, Eurocarb project, or third-party contributors as
* indicated by the @author tags or express copyright attribution
* statements applied by the authors.
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
* A copy of this license accompanies this distribution in the file LICENSE.txt.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* Last commit: $Rev: 1254 $ by $Author: glycoslave $ on $Date:: 2009-06-25 #$
*/
package org.eurocarbdb.sugar;
/**
* Exception class for indicating the state of an {@link Attachable}
* entity being unable to attach a new object due to a conflict with
* an existing position.
*
* @see Attachable
* @author mjh
*/
public class PositionOccupiedException extends SugarException
{
Attachable<?> target;
int position;
String message;
/** Construct a non-standard exception based on an arbitrary string. */
public PositionOccupiedException( String message )
{
this.message = message;
}
/** Construct an auto-formatted exception. */
public PositionOccupiedException( Attachable<?> entity, int position )
{
this(
"Attachable object '"
+ entity
+ "' cannot attach entities at position '"
+ position
+ "'; it is already occupied by entity '"
+ entity.getAttached( position )
+ "'"
);
this.target = entity;
this.position = position;
}
public String getMessage()
{
return message;
}
}