public abstract class EventDrivenLocalWorldView extends AbstractLocalWorldView
AbstractLocalWorldView.LazyCompositeObjectMap<T extends ICompositeWorldObject>
Modifier and Type | Field and Description |
---|---|
protected LinkedList<IWorldChangeEvent> |
notifyEventsList
List of events we have to process.
|
protected boolean |
receiveEventProcessing
Flag that is telling us whether there is an event being processed or not.
|
static String |
WORLDVIEW_DEPENDENCY |
actLocalWorldObjects, agentId, classMap, COMPONENT_ID, control, controller, eventBus, log, sharedWorldView, syncClassMap
Constructor and Description |
---|
EventDrivenLocalWorldView(ComponentDependencies dependencies,
ILifecycleBus bus,
IAgentLogger logger,
ISharedWorldView sharedWV,
ITeamedAgentId agentId) |
Modifier and Type | Method and Description |
---|---|
protected void |
innerNotify(IWorldChangeEvent event)
Used to process IWorldChangeEvent - it has to be either IWorldChangeEvent or IWorldObjectUpdateEvent.
|
void |
notify(IWorldChangeEvent event)
New event was generated from the world.
|
void |
notifyAfterPropagation(IWorldChangeEvent event)
Raise another event after current one finishes its propagation.
|
void |
notifyImmediately(IWorldChangeEvent event)
Calls notify without waiting for batches, locks or anything else.
|
protected void |
objectCreated(ILocalWorldObject obj,
long time)
Must be called whenever an object was created, raises correct events.
|
protected void |
objectDestroyed(ILocalWorldObject obj,
long time)
Must be called whenever an object was destroyed - raises correct events.
|
protected void |
objectUpdated(ILocalWorldObject obj,
long time)
Must be called whenever an object was updated - raises correct event.
|
protected void |
objectUpdatedEvent(ILocalWorldObjectUpdatedEvent updateEvent)
Called from
EventDrivenWorldView.innerNotify(IWorldChangeEvent) if the event is IWorldObjectUpdatedEvent
to process it. |
protected void |
raiseEvent(IWorldEvent event)
Catches exceptions.
|
addEventListener, addLocalWorldObject, addObjectListener, addObjectListener, addObjectListener, addObjectListener, addOldLocalWorldObject, cleanUp, createCompositeObject, get, get, get, get, get, getAgentId, getAll, getAll, getAll, getAll, getComponentId, getCurrentTimeKey, getEventBus, getLocal, getLocal, getMostRecentLocalWorldObject, getSingle, getSingle, isListening, isListening, isListening, isListening, isListening, isListening, isPaused, isRunning, kill, lockTime, pause, prePause, preStop, removeEventListener, removeListener, removeLocalWorldObject, removeObjectListener, removeObjectListener, removeObjectListener, removeObjectListener, reset, resume, setCurrentTime, setInitialTime, start, stop, unlockTime
public static final String WORLDVIEW_DEPENDENCY
protected boolean receiveEventProcessing
It is managed only by notify() method - DO NOT MODIFY OUTSIDE IT!
protected LinkedList<IWorldChangeEvent> notifyEventsList
It is managed only by notify() method - DO NOT MODIFY OUTSIDE IT!
public EventDrivenLocalWorldView(ComponentDependencies dependencies, ILifecycleBus bus, IAgentLogger logger, ISharedWorldView sharedWV, ITeamedAgentId agentId)
public void notify(IWorldChangeEvent event) throws ComponentNotRunningException, ComponentPausedException
IWorldChangeEventInput
public void notifyAfterPropagation(IWorldChangeEvent event) throws ComponentNotRunningException, ComponentPausedException
IWorldChangeEventInput
Won't propagate the event if the world view is locked!.
public void notifyImmediately(IWorldChangeEvent event) throws ComponentNotRunningException, ComponentPausedException
ILocalWorldView
protected void raiseEvent(IWorldEvent event)
ComponentController
.fatalError() and this.kill().raiseEvent
in class AbstractLocalWorldView
protected void innerNotify(IWorldChangeEvent event)
DO NOT CALL SEPARATELY - should be called only from notifyEvent().
You may override it to provide event-specific processing behavior.
event
- protected void objectUpdatedEvent(ILocalWorldObjectUpdatedEvent updateEvent)
EventDrivenWorldView.innerNotify(IWorldChangeEvent)
if the event is IWorldObjectUpdatedEvent
to process it.updateEvent
- protected void objectCreated(ILocalWorldObject obj, long time)
Might be overridden to provide different behavior.
obj
- protected void objectUpdated(ILocalWorldObject obj, long time)
Might be overridden to provide a mechanism that will forbid update of certain objects (like items that can't move).
obj
- protected void objectDestroyed(ILocalWorldObject obj, long time)
Might be overriden to provide different behavior.
obj
- Copyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.