rails.game.model
Class ModelObject

java.lang.Object
  extended by java.util.Observable
      extended by rails.game.model.ModelObject
Direct Known Subclasses:
BaseTokensModel, CalculatedMoneyModel, CashModel, CertCountModel, GenericState, MapHex, PresidentModel, PriceModel, PrivatesModel, ShareModel, State, StockSpace, Tile, TrainsModel

public abstract class ModelObject
extends java.util.Observable

A generic superclass for all Model values that need be displayed in some form in the View (UI).

This class extends Observable to allow it to be used with the Observer pattern, but this usage is optional.


Field Summary
protected  java.util.Set<ModelObject> dependents
           
protected static org.apache.log4j.Logger log
           
protected  int option
           
 
Constructor Summary
ModelObject()
           
 
Method Summary
 void addDependent(ModelObject object)
          Add a dependent model object
 void addObserver(java.util.Observer o)
           
abstract  java.lang.String getText()
          The object that is sent to the Observer along with a notification.
 java.lang.Object getUpdate()
          Default update is just text
 void removeDependent(ModelObject object)
          Remove a dependent model object.
 void resetOption(int option)
           
 void setOption(int option)
          Optional method, to make a subclass-dependent selection of the way the "value" will be composed.
 void update()
          The minimum action that causes the view objects to be updated.
 
Methods inherited from class java.util.Observable
clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

option

protected int option

dependents

protected java.util.Set<ModelObject> dependents

log

protected static org.apache.log4j.Logger log
Constructor Detail

ModelObject

public ModelObject()
Method Detail

addObserver

public void addObserver(java.util.Observer o)
Overrides:
addObserver in class java.util.Observable

addDependent

public void addDependent(ModelObject object)
Add a dependent model object


removeDependent

public void removeDependent(ModelObject object)
Remove a dependent model object.


getUpdate

public java.lang.Object getUpdate()
Default update is just text


setOption

public void setOption(int option)
Optional method, to make a subclass-dependent selection of the way the "value" will be composed. The default value is 0.

Parameters:
option - The selected

resetOption

public void resetOption(int option)

update

public void update()
The minimum action that causes the view objects to be updated. This method can be used if the object embedded in this class is just a reference to an outside object (e.g. Portfolio).


getText

public abstract java.lang.String getText()
The object that is sent to the Observer along with a notification. The default result is the Observable's toString(), but it can be overridden where needed.

Returns: