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 }