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 }