/* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * BeanCommon.java * Copyright (C) 2002 University of Waikato, Hamilton, New Zealand * */ package weka.gui.beans; import java.beans.EventSetDescriptor; /** * Interface specifying routines that all weka beans should implement * in order to allow the bean environment to exercise some control over the * bean and also to allow the bean to exercise some control over connections. * * Beans may want to impose constraints in terms of * the number of connections they will allow via a particular * listener interface. Some beans may only want to be registered * as a listener for a particular event type with only one source, or * perhaps a limited number of sources. * * @author <a href="mailto:mhall@cs.waikato.ac.nz">Mark Hall</a> * @version $Revision: 5820 $ * @since 1.0 */ public interface BeanCommon { /** * Set a custom (descriptive) name for this bean * * @param name the name to use */ void setCustomName(String name); /** * Get the custom (descriptive) name for this bean (if one has been set) * * @return the custom name (or the default name) */ String getCustomName(); /** * Stop any processing that the bean might be doing. */ void stop(); /** * Returns true if. at this time, the bean is busy with some * (i.e. perhaps a worker thread is performing some calculation). * * @return true if the bean is busy. */ boolean isBusy(); /** * Set a logger * * @param logger a <code>weka.gui.Logger</code> value */ void setLog(weka.gui.Logger logger); /** * Returns true if, at this time, * the object will accept a connection via the named event * * @param esd the EventSetDescriptor for the event in question * @return true if the object will accept a connection */ boolean connectionAllowed(EventSetDescriptor esd); /** * Returns true if, at this time, * the object will accept a connection via the named event * * @param eventName the name of the event * @return true if the object will accept a connection */ boolean connectionAllowed(String eventName); /** * Notify this object that it has been registered as a listener with * a source for recieving events described by the named event * This object is responsible for recording this fact. * * @param eventName the event * @param source the source with which this object has been registered as * a listener */ void connectionNotification(String eventName, Object source); /** * Notify this object that it has been deregistered as a listener with * a source for named event. This object is responsible * for recording this fact. * * @param eventName the event * @param source the source with which this object has been registered as * a listener */ void disconnectionNotification(String eventName, Object source); }