package mightypork.gamecore.control.bus.events; import mightypork.gamecore.control.bus.events.types.DelayedEvent; import mightypork.gamecore.control.bus.events.types.ImmediateEvent; import mightypork.gamecore.control.bus.events.types.SingleReceiverEvent; /** *

* Something that can be handled by HANDLER. *

*

* Can be annotated as {@link SingleReceiverEvent} to be delivered once only, * and {@link DelayedEvent} or {@link ImmediateEvent} to specify default sending * mode. *

*

* Default sending mode (if not changed by annotations) is queued with * zero delay. *

* * @author MightyPork * @param handler type */ public interface Event { /** * Ask handler to handle this message. * * @param handler handler instance */ public void handleBy(HANDLER handler); }