/*
* Copyright 2001-2006 C:1 Financial Services GmbH
*
* This software is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License Version 2.1, as published by the Free Software Foundation.
*
* This software 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.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
*/
package de.finix.contelligent;
/**
* A {@link Container} which must be informed when either one of its
* subcomponents gets {@link #subcomponentRemoved removed} or a new one was
* {@link #subcomponentAdded added}.
*/
public interface ObservingContainer extends Container {
/**
* Gets called by the Contelligent system whenever a new subcomponent should
* be added to this container. If the container does not allow the addition
* of the given component a <code>ModificationVetoException</code> must be
* thrown.
*
* @param callData
* a <code>CallData</code> value
* @param newSubcomponent
* a <code>Component</code> value
* @return true if the container changed because of this call.
* @exception ModificationVetoException
* if the container does not allow the addition of the given
* component.
*/
boolean subcomponentAdded(CallData callData, Component newSubcomponent) throws ModificationVetoException;
/**
* Gets called by the Contelligent system whenever any subcomponent of this
* container should be removed. If the container does not allow the deletion
* of the given component a <code>ModificationVetoException</code> must be
* thrown.
*
* @param callData
* a <code>CallData</code> value
* @param name
* a non-empty <code>String</code> value - the name of the
* subcomponent which was removed
* @return true if the container changed because of this call.
* @exception ModificationVetoException
* if the container does not allow the deletion of the given
* component.
*/
boolean subcomponentRemoved(CallData callData, Component subComponent) throws ModificationVetoException;
boolean subcomponentChanged(CallData callData, Component subComponent) throws ModificationVetoException;
}
|