jfreerails.client.common
Class ModelRootImpl

java.lang.Object
  extended by jfreerails.client.common.ModelRootImpl
All Implemented Interfaces:
ModelRoot, MoveExecutor, ServerCommandReceiver

public final class ModelRootImpl
extends java.lang.Object
implements ModelRoot, ServerCommandReceiver

Provides access to the World object and other data that is shared by GUI components (for instance the cursor's position).

Author:
Luke, Rob

Nested Class Summary
 
Nested classes/interfaces inherited from interface jfreerails.controller.ModelRoot
ModelRoot.Property, ModelRoot.Value
 
Field Summary
 boolean hasBeenSetup
           
private  java.util.ArrayList<ModelRootListener> listeners
           
private  MoveChainFork moveFork
           
private  UntriedMoveReceiver moveReceiver
           
private  FreerailsPrincipal playerPrincipal
           
private  java.util.HashMap<ModelRoot.Property,java.lang.Object> properties
           
private  ServerCommandReceiver serverCommandReceiver
           
private  ReadOnlyWorld world
           
 
Constructor Summary
ModelRootImpl()
           
 
Method Summary
 void addCompleteMoveReceiver(MoveReceiver l)
           
 void addListListener(WorldListListener listener)
           
 void addMapListener(WorldMapListener l)
           
 void addPropertyChangeListener(ModelRootListener l)
           
 void addSplitMoveReceiver(MoveReceiver l)
           
 MoveStatus doMove(Move m)
           
 MoveStatus doPreMove(PreMove pm)
           
 FreerailsPrincipal getPrincipal()
           
 java.lang.Object getProperty(ModelRoot.Property p)
           
 ReadOnlyWorld getWorld()
           
 boolean is(ModelRoot.Property p, java.lang.Object value)
          Tests whether the specified property has the specified value.
 void sendCommand(Message2Server c)
           
 void setMoveFork(MoveChainFork moveFork)
           
 void setMoveReceiver(UntriedMoveReceiver moveReceiver)
           
 void setProperty(ModelRoot.Property p, java.lang.Object newValue)
           
 void setServerCommandReceiver(ServerCommandReceiver serverCommandReceiver)
           
 void setup(ReadOnlyWorld world, FreerailsPrincipal p)
          Updates the ModelRoot with those properties which are dependent upon the world model.
 MoveStatus tryDoMove(Move m)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

hasBeenSetup

public boolean hasBeenSetup

moveFork

private MoveChainFork moveFork

moveReceiver

private UntriedMoveReceiver moveReceiver

playerPrincipal

private FreerailsPrincipal playerPrincipal

properties

private final java.util.HashMap<ModelRoot.Property,java.lang.Object> properties

serverCommandReceiver

private ServerCommandReceiver serverCommandReceiver

world

private ReadOnlyWorld world

listeners

private final java.util.ArrayList<ModelRootListener> listeners
Constructor Detail

ModelRootImpl

public ModelRootImpl()
Method Detail

addCompleteMoveReceiver

public void addCompleteMoveReceiver(MoveReceiver l)

addListListener

public void addListListener(WorldListListener listener)

addMapListener

public void addMapListener(WorldMapListener l)

addPropertyChangeListener

public void addPropertyChangeListener(ModelRootListener l)

addSplitMoveReceiver

public void addSplitMoveReceiver(MoveReceiver l)

doMove

public MoveStatus doMove(Move m)
Specified by:
doMove in interface MoveExecutor

doPreMove

public MoveStatus doPreMove(PreMove pm)
Specified by:
doPreMove in interface MoveExecutor

getPrincipal

public FreerailsPrincipal getPrincipal()
Specified by:
getPrincipal in interface MoveExecutor

getProperty

public java.lang.Object getProperty(ModelRoot.Property p)
Specified by:
getProperty in interface ModelRoot

getWorld

public ReadOnlyWorld getWorld()
Specified by:
getWorld in interface MoveExecutor

sendCommand

public void sendCommand(Message2Server c)
Specified by:
sendCommand in interface ModelRoot
Specified by:
sendCommand in interface ServerCommandReceiver

setMoveFork

public void setMoveFork(MoveChainFork moveFork)

setMoveReceiver

public void setMoveReceiver(UntriedMoveReceiver moveReceiver)

setProperty

public void setProperty(ModelRoot.Property p,
                        java.lang.Object newValue)
Specified by:
setProperty in interface ModelRoot

setServerCommandReceiver

public void setServerCommandReceiver(ServerCommandReceiver serverCommandReceiver)

setup

public void setup(ReadOnlyWorld world,
                  FreerailsPrincipal p)
Updates the ModelRoot with those properties which are dependent upon the world model. Call this when the world model is changed (e.g. new map is loaded)


tryDoMove

public MoveStatus tryDoMove(Move m)
Specified by:
tryDoMove in interface MoveExecutor

is

public boolean is(ModelRoot.Property p,
                  java.lang.Object value)
Description copied from interface: ModelRoot
Tests whether the specified property has the specified value.

Specified by:
is in interface ModelRoot