package cellsociety public abstract class CellGrid implements java.lang.Iterable { public CellGrid() abstract public List getNeighbors(Cell cell) abstract public Cell getCell(GridCoordinates coords) public int getCurrentTime() public void advanceCurrentTime() public void copyState() abstract protected Collection getNeighborCoordinates(GridCoordinates coords) } package cellsociety.cells public class GameOfLifeCell extends Cell { public GameOfLifeCell(CellGrid parentGrid, GridCoordinates coordinates) } package cellsociety.util public class StateList { public StateList() public int getOldestTime() public int statesPresent() public void addState(int time, T state) public void setState(int time, T newState) public T getState(int time) public String toString() } package cellsociety public class GridCoordinates { public GridCoordinates(int x, int y) public int getX() public int getY() public GridCoordinates add(GridCoordinates rhs) } package cellsociety public class CellularAutomatonConfiguration { public CellularAutomatonConfiguration(String configFileName) public CellularAutomatonConfiguration(File configFile) public CellularAutomatonRule getRuleSet() public CellGrid getGrid() public Map getSimulationMetadata() public int getGridWidth() public int getGridHeight() public Map getCellStyles() public List> getInitialStates() public Map getSimulationParameters() } package cellsociety public class CellularAutomatonController { public CellularAutomatonController() public CellularAutomatonController(CellularAutomatonView myView) public void initializeForConfig(CellularAutomatonConfiguration config) public CellularAutomatonConfiguration loadConfigFile(String configFileName) public CellularAutomatonConfiguration loadConfigFile(GridPane masterLayout) public void playSimulation() public void pauseSimulation() public void changeRateSlider(int sliderPos) public void stepOnce() public void resetSimulation() } package cellsociety public class CellularAutomaton { public CellularAutomaton(CellGrid grid, CellularAutomatonRule rule) public void setRule(CellularAutomatonRule rule) public void step() public CellGrid getGrid() } package cellsociety.grids public class RectangularCellGrid extends Dense2DCellGrid { public Collection getNeighborCoordinates(GridCoordinates center) public RectangularCellGrid(int w, int h, } package cellsociety.grids public abstract class Dense2DCellGrid extends CellGrid { public Dense2DCellGrid(int w, int h, boolean wrapping) public Cell getCell(GridCoordinates coords) public List getNeighbors(Cell c) public Dense2DGridIterator(Cell grid[][]) public boolean hasNext() public void remove() public Cell next() public Iterator iterator() public void appendStates(CellState states[][]) public CellState[][] extractStates(int delta) } package cellsociety.xml public class XMLException extends RuntimeException { public XMLException (String message, Object ... values) public XMLException (Throwable cause, String message, Object ... values) public XMLException (Throwable cause) } package cellsociety.xml public class XMLParser { public XMLParser (String fileName) throws XMLException public XMLParser (File file) throws XMLException public Map getMetadata () public String getSimulationType() public String getGridType() public int getGridWidth() public int getGridHeight() public int getGridNeighbors() public boolean getGridWrapping() public List> getInitialStates() public Map getCellStyles() public Map getParameters() } package cellsociety public abstract class CellularAutomatonRule { public CellularAutomatonRule(Map params) public abstract void advanceCellState(Cell cell, List neighbors) } package cellsociety public abstract class CellState> { public Collection getAvailableStates() public String toString() public E getState() protected CellState(E s) protected CellState(Class cl, String str) } package cellsociety.states public class SegregationState extends CellState { public SegregationState(States s) public SegregationState() public SegregationState(String str) } package cellsociety.states public class PercolationState extends CellState { public PercolationState(States s) public PercolationState() public PercolationState(String str) } package cellsociety.states public class WaTorWorldState extends CellState { public WaTorWorldState(States s, int survived, int eating) public WaTorWorldState(States s, int survived) public WaTorWorldState(States s) public WaTorWorldState() public WaTorWorldState(String str) public int getTurnsSurvived() public int getTurnsWithoutEating() } package cellsociety.states public class GameOfLifeState extends CellState { public GameOfLifeState(States s) public GameOfLifeState() public GameOfLifeState(String str) } package cellsociety.states public class FireState extends CellState { public FireState(States s) public FireState() public FireState(String str) } package cellsociety public class Main extends Application { public void start(Stage stage) throws IOException } package cellsociety.view public abstract class GridStyle { public abstract void createGrid(int width, int height) public abstract void updateGrid(List> listOfCells, Map stateToColor) } package cellsociety.view public class RectangularGridStyle extends GridStyle{ public RectangularGridStyle(Parent pane) public Rectangle createRectangleCell(double width, double height, Color color) public void createGrid(int numRows, int numCols) public void updateGrid(List> listOfStates, Map stateToColor) } package cellsociety.view public class CellularAutomatonView { public void initialize() public void updateXML(CellularAutomatonConfiguration config) public void startResetButtonClick() public void pauseResumeButtonClick() public void stepButtonClick() public void speedButtonClick() public void loadFileClick() public void updateView(List> myStates) } package cellsociety.rules public class PercolationRule extends CellularAutomatonRule { public PercolationRule(Map params) public void advanceCellState(Cell cell, List neighbors) } package cellsociety.rules public class SegregationRule extends CellularAutomatonRule { public SegregationRule(Map params) public void advanceCellState(Cell cell, List neighbors) public void setGameSpecifics(Map params) } package cellsociety.rules public class FireRule extends CellularAutomatonRule { public FireRule(Map params) public void advanceCellState(Cell cell, List neighbors) public void neighborsOnFire(Cell cell, List neighbors) public boolean didCatchFire() public void dieOut(Cell cell) public void burn(Cell cell) public void setGameSpecifics(Map params) } package cellsociety.rules public class WaTorWorldRule extends CellularAutomatonRule { public WaTorWorldRule(Map params) public void advanceCellState(Cell cell, List neighbors) public void setGameSpecifics(Map params) } package cellsociety.rules public class GameOfLifeRule extends CellularAutomatonRule { public GameOfLifeRule(Map params) public void advanceCellState(Cell cell, List neighbors) public void setGameSpecifics(Map params) } package cellsociety public class Cell { public Cell(CellGrid parentGrid, GridCoordinates coordinates) public void setState(int delta, CellState state) public CellState getState(int delta) public StateList getStates() public void copyState() public void appendState(CellState state) public CellGrid getParentGrid() public GridCoordinates getCoordinates() }