View Javadoc

1   package cz.cuni.amis.pogamut.base.component.controller;
2   
3   import cz.cuni.amis.pogamut.base.component.IComponent;
4   import cz.cuni.amis.pogamut.base.component.ISharedComponent;
5   import cz.cuni.amis.utils.token.IToken;
6   
7   /**
8    * The component controller is meant for simple {@link IComponent} NOT {@link ISharedComponent}s (for them, use {@link ISharedComponentController} instead).
9    * <p><p>
10   * It is suitable for controlling lifecycle of one component inside one component bus. It provides methods for
11   * querying components the controlled component is depending on. 
12   * <p><p>
13   * For more information, how {@link IComponentController} should behave, see (quite exhausting) javadoc for its concrete implementation {@link ComponentController}.
14   * 
15   * @author Jimmy
16   */
17  public interface IComponentController<COMPONENT extends IComponent> extends IComponentControllerBase<COMPONENT> {
18  	
19  	/**
20  	 * Whether the controlled component is dependent on the component identified by 'componentId'.
21  	 * @param componentId
22  	 * @return
23  	 */
24  	public boolean isDependent(IToken componentId);
25  	
26  	/**
27  	 * Whether the controlled component is dependent on 'component'.
28  	 * @param component
29  	 * @return
30  	 */
31  	public boolean isDependent(IComponent component);
32  	
33  }