Gridarta Editor
net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R > Class Template Reference

Provides support for delayed notification of MapModel changes. More...

+ Inheritance diagram for net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >:
+ Collaboration diagram for net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >:

Classes

class  MapArchObjectListenerImpl
 A MapArchObjectListener attached to all existing maps. More...
 
class  MapModelListenerImpl
 A MapModelListener attached to all existing maps. More...
 

Public Member Functions

void addDelayedMapModelListener (@NotNull final DelayedMapModelListener< G, A, R > listener)
 Adds a DelayedMapModelListener to be notified. More...
 
 DelayedMapModelListenerManager (@NotNull final MapManager< G, A, R > mapManager, @NotNull final Exiter exiter)
 Creates a new instance. More...
 
void removeDelayedMapModelListener (@NotNull final DelayedMapModelListener< G, A, R > listener)
 Removes a DelayedMapModelListener to be notified. More...
 
void scheduleAllMapModels ()
 Schedules all MapModels as changed. More...
 
void start ()
 Starts execution. More...
 

Private Member Functions

void scheduleMapModel (@NotNull final MapModel< G, A, R > mapModel)
 Schedules a MapModel which has been changed. More...
 

Private Attributes

final Collection< DelayedMapModelListener< G, A, R > > listeners = new CopyOnWriteArrayList<>()
 The listeners to notify. More...
 
final Map< MapModel< G, A, R >, MapArchObjectListenerImplmapArchObjectListeners = new IdentityHashMap<>()
 All known MapModel instances. More...
 
final MapManager< G, A, R > mapManager
 The MapManager to track. More...
 
final MapManagerListener< G, A, R > mapManagerListener
 The MapManagerListener used to detect created and closed {} instances. More...
 
final Map< MapModel< G, A, R >, MapModelListenerImplmapModelListeners = new IdentityHashMap<>()
 All known MapModel instances. More...
 
final Map< MapModel< G, A, R >, Void > scheduledMapModels = new IdentityHashMap<>()
 The MapModels having pending changes. More...
 
final Object sync = new Object()
 The object used for synchronization. More...
 
final Thread thread
 The Thread performing map validations. More...
 
long timeout
 The timestamp when to deliver scheduled map models. More...
 

Static Private Attributes

static final long DELAY = 500L
 Notification delay in milliseconds. More...
 
static final Category LOG = Logger.getLogger(DelayedMapModelListenerManager.class)
 The Logger for printing log messages. More...
 

Detailed Description

Provides support for delayed notification of MapModel changes.

Author
Andreas Kirschbaum

Definition at line 54 of file DelayedMapModelListenerManager.java.

Constructor & Destructor Documentation

◆ DelayedMapModelListenerManager()

net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.DelayedMapModelListenerManager ( @NotNull final MapManager< G, A, R >  mapManager,
@NotNull final Exiter  exiter 
)

Creates a new instance.

Parameters
mapManagerthe map manager to track
exiterthe exiter instance

Definition at line 215 of file DelayedMapModelListenerManager.java.

Member Function Documentation

◆ addDelayedMapModelListener()

void net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.addDelayedMapModelListener ( @NotNull final DelayedMapModelListener< G, A, R >  listener)

Adds a DelayedMapModelListener to be notified.

Parameters
listenerthe listener

Definition at line 258 of file DelayedMapModelListenerManager.java.

Referenced by net.sf.gridarta.gui.autovalidator.AutoValidator< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.AutoValidator().

+ Here is the caller graph for this function:

◆ removeDelayedMapModelListener()

void net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.removeDelayedMapModelListener ( @NotNull final DelayedMapModelListener< G, A, R >  listener)

Removes a DelayedMapModelListener to be notified.

Parameters
listenerthe listener

Definition at line 269 of file DelayedMapModelListenerManager.java.

◆ scheduleAllMapModels()

◆ scheduleMapModel()

◆ start()

Member Data Documentation

◆ DELAY

final long net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.DELAY = 500L
staticprivate

Notification delay in milliseconds.

All listeners will be notified this delay after the last map change has happened.

Definition at line 66 of file DelayedMapModelListenerManager.java.

Referenced by net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G, A, R >.scheduleAllMapModels(), and net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G, A, R >.scheduleMapModel().

◆ listeners

◆ LOG

final Category net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.LOG = Logger.getLogger(DelayedMapModelListenerManager.class)
staticprivate

◆ mapArchObjectListeners

final Map<MapModel<G, A, R>, MapArchObjectListenerImpl> net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.mapArchObjectListeners = new IdentityHashMap<>()
private

All known MapModel instances.

Maps map model instance to attached MapArchObjectListenerImpl instance.

Definition at line 86 of file DelayedMapModelListenerManager.java.

◆ mapManager

◆ mapManagerListener

◆ mapModelListeners

final Map<MapModel<G, A, R>, MapModelListenerImpl> net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.mapModelListeners = new IdentityHashMap<>()
private

All known MapModel instances.

Maps map model instance to attached MapModelListenerImpl instance.

Definition at line 79 of file DelayedMapModelListenerManager.java.

◆ scheduledMapModels

final Map<MapModel<G, A, R>, Void> net.sf.gridarta.gui.delayedmapmodel.DelayedMapModelListenerManager< G extends GameObject< G, A, R, A extends MapArchObject< A, R extends Archetype< G, A, R >.scheduledMapModels = new IdentityHashMap<>()
private

◆ sync

◆ thread

◆ timeout


The documentation for this class was generated from the following file: