civquest.gameChange
Class GameChangeManager

java.lang.Object
  extended bycivquest.gameChange.GameChangeManager

public class GameChangeManager
extends java.lang.Object

Keeps track of all GameChanges.

This means that here, the association GameChange - Listener(s) gets stored. (where Listeners are the Listeners that get notified if the GameChange happens).

One object of this type manages all GameChanges of one CivQuest-instance. QUESTION: Remove ListenerManagers if they get empty because of removing Listeners?


Constructor Summary
GameChangeManager(Registry registry)
          Constructs a new GameChangeManager.
 
Method Summary
static java.lang.String extractClassName(java.lang.String name)
           
 void notifyCityChangeListeners(java.lang.String name, CityChange cityChange)
           
 void notifyFieldChangeListeners(java.lang.String name, FieldChange fieldChange)
           
 void notifyGUIChangeListeners(java.lang.String name, GUIChange guiChange)
           
 void notifyNationChangeListeners(java.lang.String name, NationChange nationChange)
           
 void notifyPlayerChangeListeners(java.lang.String name, PlayerChange playerChange)
           
 void notifyUnitChangeListeners(java.lang.String name, UnitChange unitChange)
           
 void removeListener(GameChangeListener listener)
           
 void setUpListener(GameChangeListener listener, Section config)
          Makes the given GameChangeListener listen to the gamechanges specified in the given ruleset-section.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GameChangeManager

public GameChangeManager(Registry registry)
Constructs a new GameChangeManager.

Parameters:
registry - the gamechange-(sub)registry
Method Detail

notifyFieldChangeListeners

public void notifyFieldChangeListeners(java.lang.String name,
                                       FieldChange fieldChange)

notifyUnitChangeListeners

public void notifyUnitChangeListeners(java.lang.String name,
                                      UnitChange unitChange)

notifyCityChangeListeners

public void notifyCityChangeListeners(java.lang.String name,
                                      CityChange cityChange)

notifyPlayerChangeListeners

public void notifyPlayerChangeListeners(java.lang.String name,
                                        PlayerChange playerChange)

notifyNationChangeListeners

public void notifyNationChangeListeners(java.lang.String name,
                                        NationChange nationChange)

notifyGUIChangeListeners

public void notifyGUIChangeListeners(java.lang.String name,
                                     GUIChange guiChange)

setUpListener

public void setUpListener(GameChangeListener listener,
                          Section config)
                   throws InvalidListenerException
Makes the given GameChangeListener listen to the gamechanges specified in the given ruleset-section. Note that the section may not contain gamechanges the listener can't listen to (this would end up in an InvalidListenerException).

Parameters:
listener - GameChangeListener that can listen to all gamechanges specified in the given ruleset-section
config - any ruleset-section specifying gamechanges (explained in the texinfo-docs, possibly not yet written (2003-12-29)
Throws:
InvalidListenerException - if the ruleset-section specifies any gamechange the listener can't listen to

removeListener

public void removeListener(GameChangeListener listener)

extractClassName

public static java.lang.String extractClassName(java.lang.String name)