rails.game
Class StockMarket

java.lang.Object
  extended by rails.game.StockMarket
All Implemented Interfaces:
ConfigurableComponentI, StockMarketI

public class StockMarket
extends java.lang.Object
implements StockMarketI, ConfigurableComponentI


Field Summary
protected  StockSpaceI currentSquare
           
static java.lang.String DEFAULT
           
protected  StockSpaceTypeI defaultType
           
(package private)  GameManagerI gameManager
           
protected  BooleanState gameOver
          GameOver becomes true if a stock market square is reached that is marked as such
(package private)  java.util.ArrayList<PublicCertificate> ipoPile
           
protected  int numCols
           
protected  int numRows
           
protected  int[] startPrices
           
protected  java.util.ArrayList<StockSpaceI> startSpaces
           
protected  StockSpaceI[][] stockChart
           
protected  java.util.HashMap<java.lang.String,StockSpaceI> stockChartSpaces
           
protected  java.util.HashMap<java.lang.String,StockSpaceTypeI> stockSpaceTypes
           
protected  boolean upOrDownRight
           
 
Fields inherited from interface rails.game.StockMarketI
COMPONENT_NAME
 
Constructor Summary
StockMarket()
           
 
Method Summary
 void close(PublicCompanyI company)
           
 void configureFromXML(Tag tag)
          Instructs the component to configure itself from the provided XML element.
 void finishConfiguration(GameManagerI gameManager)
          Final initialisations, to be called after all XML processing is complete.
 int getNumberOfColumns()
           
 int getNumberOfRows()
           
 int[] getStartPrices()
          Return start prices as an int array.
 StockSpaceI getStartSpace(int price)
           
 java.util.List<StockSpaceI> getStartSpaces()
           
 StockSpaceI[][] getStockChart()
           
 StockSpaceI getStockSpace(int row, int col)
           
 StockSpace getStockSpace(java.lang.String name)
           
protected  void moveDown(PublicCompanyI company, int numberOfSpaces)
           
protected  void moveLeftOrDown(PublicCompanyI company)
           
protected  void moveRightOrUp(PublicCompanyI company)
           
 void moveUp(PublicCompanyI company)
           
 void payOut(PublicCompanyI company)
           
protected  void prepareMove(PublicCompanyI company, StockSpaceI from, StockSpaceI to)
           
 void processMove(PublicCompanyI company, StockSpaceI from, StockSpaceI to)
           
 void processMoveToStackPosition(PublicCompanyI company, StockSpaceI from, StockSpaceI to, int toStackPosition)
           
 PublicCertificate removeShareFromPile(PublicCertificate stock)
           
 void sell(PublicCompanyI company, int numberOfSpaces)
           
 void soldOut(PublicCompanyI company)
           
 void start(PublicCompanyI company, StockSpaceI price)
           
 void withhold(PublicCompanyI company)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

stockSpaceTypes

protected java.util.HashMap<java.lang.String,StockSpaceTypeI> stockSpaceTypes

stockChartSpaces

protected java.util.HashMap<java.lang.String,StockSpaceI> stockChartSpaces

stockChart

protected StockSpaceI[][] stockChart

currentSquare

protected StockSpaceI currentSquare

numRows

protected int numRows

numCols

protected int numCols

startSpaces

protected java.util.ArrayList<StockSpaceI> startSpaces

startPrices

protected int[] startPrices

defaultType

protected StockSpaceTypeI defaultType

gameManager

GameManagerI gameManager

upOrDownRight

protected boolean upOrDownRight

gameOver

protected BooleanState gameOver
GameOver becomes true if a stock market square is reached that is marked as such


ipoPile

java.util.ArrayList<PublicCertificate> ipoPile

DEFAULT

public static final java.lang.String DEFAULT
See Also:
Constant Field Values
Constructor Detail

StockMarket

public StockMarket()
Method Detail

configureFromXML

public void configureFromXML(Tag tag)
                      throws ConfigurationException
Description copied from interface: ConfigurableComponentI
Instructs the component to configure itself from the provided XML element.

Specified by:
configureFromXML in interface ConfigurableComponentI
Throws:
ConfigurationException
See Also:
rails.game.ConfigurableComponentI#configureFromXML(org.w3c.dom.Element)

finishConfiguration

public void finishConfiguration(GameManagerI gameManager)
Final initialisations, to be called after all XML processing is complete. The purpose is to register fixed company start prices.

Specified by:
finishConfiguration in interface ConfigurableComponentI
Parameters:
gameManager - The 'parent' configurable component is passed to allow the 'child' to access any other object without the need to resort to static calls where possible.

getStockChart

public StockSpaceI[][] getStockChart()
Specified by:
getStockChart in interface StockMarketI
Returns:

getStockSpace

public StockSpaceI getStockSpace(int row,
                                 int col)
Specified by:
getStockSpace in interface StockMarketI

getStockSpace

public StockSpace getStockSpace(java.lang.String name)
Specified by:
getStockSpace in interface StockMarketI

start

public void start(PublicCompanyI company,
                  StockSpaceI price)
Specified by:
start in interface StockMarketI

payOut

public void payOut(PublicCompanyI company)
Specified by:
payOut in interface StockMarketI

withhold

public void withhold(PublicCompanyI company)
Specified by:
withhold in interface StockMarketI

sell

public void sell(PublicCompanyI company,
                 int numberOfSpaces)
Specified by:
sell in interface StockMarketI

soldOut

public void soldOut(PublicCompanyI company)
Specified by:
soldOut in interface StockMarketI

moveUp

public void moveUp(PublicCompanyI company)
Specified by:
moveUp in interface StockMarketI

close

public void close(PublicCompanyI company)
Specified by:
close in interface StockMarketI

moveDown

protected void moveDown(PublicCompanyI company,
                        int numberOfSpaces)

moveRightOrUp

protected void moveRightOrUp(PublicCompanyI company)

moveLeftOrDown

protected void moveLeftOrDown(PublicCompanyI company)

prepareMove

protected void prepareMove(PublicCompanyI company,
                           StockSpaceI from,
                           StockSpaceI to)

processMove

public void processMove(PublicCompanyI company,
                        StockSpaceI from,
                        StockSpaceI to)
Specified by:
processMove in interface StockMarketI

processMoveToStackPosition

public void processMoveToStackPosition(PublicCompanyI company,
                                       StockSpaceI from,
                                       StockSpaceI to,
                                       int toStackPosition)
Specified by:
processMoveToStackPosition in interface StockMarketI

getStartSpaces

public java.util.List<StockSpaceI> getStartSpaces()
Specified by:
getStartSpaces in interface StockMarketI
Returns:

getStartPrices

public int[] getStartPrices()
Return start prices as an int array. Note: this array is NOT sorted.

Specified by:
getStartPrices in interface StockMarketI
Returns:

getStartSpace

public StockSpaceI getStartSpace(int price)
Specified by:
getStartSpace in interface StockMarketI

removeShareFromPile

public PublicCertificate removeShareFromPile(PublicCertificate stock)

getNumberOfColumns

public int getNumberOfColumns()
Specified by:
getNumberOfColumns in interface StockMarketI
Returns:

getNumberOfRows

public int getNumberOfRows()
Specified by:
getNumberOfRows in interface StockMarketI
Returns: