/* * A property token adapter for CompositeActor. * * Below is the copyright agreement for the Ptolemy II system. * * Copyright (c) 2008-2009 The Regents of the University of California. All * rights reserved. * * Permission is hereby granted, without written agreement and without license * or royalty fees, to use, copy, modify, and distribute this software and its * documentation for any purpose, provided that the above copyright notice and * the following two paragraphs appear in all copies of this software. * * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN * "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. */ package ptolemy.data.properties.token; import java.util.Iterator; import java.util.List; import ptolemy.data.properties.PropertyHelper; import ptolemy.kernel.CompositeEntity; import ptolemy.kernel.util.IllegalActionException; import ptolemy.kernel.util.NamedObj; /** * A property token adapter for CompositeActor. * * @author Thomas Mandl, Man-Kit Leung * @version $Id: PropertyTokenCompositeHelper.java 54702 2009-06-26 18:05:22Z * cxh $ * @since Ptolemy II 7.1 * @Pt.ProposedRating Red (mankit) * @Pt.AcceptedRating Red (mankit) */ public class PropertyTokenCompositeHelper extends PropertyTokenHelper { public PropertyTokenCompositeHelper(PropertyTokenSolver solver, Object component) { super(solver, component); } public void addListener(boolean listenInputs, boolean listenOutputs) throws IllegalActionException { super.addListener(listenInputs, listenOutputs); Iterator iterator = _getSubHelpers().iterator(); while (iterator.hasNext()) { PropertyTokenHelper adapter = (PropertyTokenHelper) iterator.next(); adapter.addListener(listenInputs, listenOutputs); } } public void removeListener(boolean listenInputs, boolean listenOutputs) throws IllegalActionException { super.removeListener(listenInputs, listenOutputs); Iterator iterator = _getSubHelpers().iterator(); while (iterator.hasNext()) { PropertyTokenHelper adapter = (PropertyTokenHelper) iterator.next(); adapter.removeListener(listenInputs, listenOutputs); } } protected List<PropertyHelper> _getSubHelpers() throws IllegalActionException { List<PropertyHelper> adapters = super._getSubHelpers(); CompositeEntity component = (CompositeEntity) getComponent(); Iterator iterator = component.entityList().iterator(); while (iterator.hasNext()) { NamedObj actor = (NamedObj) iterator.next(); adapters.add(_solver.getHelper(actor)); } return adapters; } }