ObservingContainer.java :  » Content-Management-System » contelligent » de » finix » contelligent » Java Open Source

Java Open Source » Content Management System » contelligent 
contelligent » de » finix » contelligent » ObservingContainer.java
/*
 * 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;
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.