1 package cz.cuni.amis.pogamut.base.component;
2
3 import javax.management.MXBean;
4
5 import cz.cuni.amis.utils.token.IToken;
6
7 /**
8 * Every agent consists of components. Component is anything that wraps some kind of functionality.
9 * Such as WorldView, ShootingBehavior or the Agent itself.
10 * <p><p>
11 * Every component has its own ID (string based), that can be thought of as Spring-bean identifier.
12 * Every component may register listener on events from other components using this ID and EventBus.
13 *
14 * @author Jimmy
15 */
16 @MXBean
17 public interface IComponent {
18
19 /**
20 * Unique identification of the component.
21 * @return
22 */
23 public IToken getComponentId();
24
25 // Could not be here, as Logger has trouble with serialization...
26 // /**
27 // * Returns log used by the component.
28 // * @return
29 // */
30 // public Logger getLog();
31
32 }