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 }