cz.cuni.amis.pogamut.base.communication.worldview.react
Class ObjectEventReact<OBJECT extends IWorldObject,EVENT extends IWorldObjectEvent<OBJECT>>

java.lang.Object
  extended by cz.cuni.amis.pogamut.base.communication.worldview.react.ObjectEventReact<OBJECT,EVENT>
Type Parameters:
EVENT -
Direct Known Subclasses:
ObjectEventReactOnce, ObjectReact

public abstract class ObjectEventReact<OBJECT extends IWorldObject,EVENT extends IWorldObjectEvent<OBJECT>>
extends java.lang.Object

This abstract class allows you to easily hook a specific event-handling behavior. It automatically register a listener for a specified IWorldObjectEvent for you and calls react(IWorldObjectEvent) method automatically.

If you need to react only once to the event, use ObjectEventReactOnce.

Use enable() and disable() to enable react / disable react. The reaction is enabled as default.

WARNING:Use as anonymous class, but save it as a field of your class! Note, that we're using weak-references to listeners and if you do not save pointer to the object, it will be gc()ed!


Field Summary
protected static int LEVEL_B_EVENT
           
protected static int LEVEL_C_EVENT
           
protected static int LEVEL_D_EVENT
           
protected static int LEVEL_E_EVENT
           
protected  java.lang.Class reactEventClass
           
protected  IWorldObjectEventListener<OBJECT,EVENT> reactListener
           
protected  java.lang.Class reactObjectClass
           
protected  int reactObjectEventType
           
protected  WorldObjectId reactObjectId
           
protected  IWorldView reactWorldView
           
 
Constructor Summary
ObjectEventReact(java.lang.Class<?> objectClass, java.lang.Class<?> eventClass, IWorldView worldView)
           
ObjectEventReact(java.lang.Class<?> objectClass, IWorldView worldView)
           
ObjectEventReact(WorldObjectId objectId, java.lang.Class<?> eventClass, IWorldView worldView)
           
ObjectEventReact(WorldObjectId objectId, IWorldView worldView)
           
 
Method Summary
 void disable()
          Disables the reaction.
 void enable()
          Enables the reaction.
protected  void postReact(EVENT event)
          post-ObjectEventReact#react(IWorldEvent) hook allowing you to do additional work after the react method.
protected  void preReact(EVENT event)
          pre-ObjectEventReact#react(IWorldEvent) hook allowing you to do additional work before the react method.
protected abstract  void react(EVENT event)
          React upon event notification.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LEVEL_B_EVENT

protected static final int LEVEL_B_EVENT
See Also:
Constant Field Values

LEVEL_C_EVENT

protected static final int LEVEL_C_EVENT
See Also:
Constant Field Values

LEVEL_D_EVENT

protected static final int LEVEL_D_EVENT
See Also:
Constant Field Values

LEVEL_E_EVENT

protected static final int LEVEL_E_EVENT
See Also:
Constant Field Values

reactListener

protected IWorldObjectEventListener<OBJECT extends IWorldObject,EVENT extends IWorldObjectEvent<OBJECT>> reactListener

reactWorldView

protected IWorldView reactWorldView

reactEventClass

protected java.lang.Class reactEventClass

reactObjectClass

protected java.lang.Class reactObjectClass

reactObjectId

protected WorldObjectId reactObjectId

reactObjectEventType

protected final int reactObjectEventType
Constructor Detail

ObjectEventReact

public ObjectEventReact(java.lang.Class<?> objectClass,
                        IWorldView worldView)

ObjectEventReact

public ObjectEventReact(java.lang.Class<?> objectClass,
                        java.lang.Class<?> eventClass,
                        IWorldView worldView)

ObjectEventReact

public ObjectEventReact(WorldObjectId objectId,
                        IWorldView worldView)

ObjectEventReact

public ObjectEventReact(WorldObjectId objectId,
                        java.lang.Class<?> eventClass,
                        IWorldView worldView)
Method Detail

disable

public void disable()
Disables the reaction.


enable

public void enable()
Enables the reaction.


preReact

protected void preReact(EVENT event)
pre-ObjectEventReact#react(IWorldEvent) hook allowing you to do additional work before the react method.

Parameters:
event -

react

protected abstract void react(EVENT event)
React upon event notification.

Parameters:
event -

postReact

protected void postReact(EVENT event)
post-ObjectEventReact#react(IWorldEvent) hook allowing you to do additional work after the react method.

Parameters:
event -