package cellsociety; public class Main extends Application { public static final String DATA_FILE_FOLDER public void start(Stage primaryStage) } package cellsociety.model.util; public class XMLData { public SimType getType() public void setType(SimType type) public String getTitle() public void setTitle(String title) public String getAuthor() public void setAuthor(String author) public String getDescription() public void setDescription(String description) public int getGridRowNum() public void setGridRowNum(int gridRowNum) public int getGridColNum() public void setGridColNum(int gridColNum) public ArrayList getCellStateList() public void setCellStateList(ArrayList cellStateList) public Map getParameters() public void setParameters(Map parameters) } package cellsociety.model.util.constants.exceptions; public class XMLException extends IllegalArgumentException { public XMLException(String message) } package cellsociety.model.util.constants; public class CellStates { } package cellsociety.model.util.constants; public class StateEnum> { public StateEnum(S state) } package cellsociety.model.util; public class XMLUtils { public XMLData readXML(File fXmlFile) public void writeToXML(File file, String title, String author, String description, Simulation simulation) } package cellsociety.model.util; public class SimulationTypes { } package cellsociety.model.simulation; public class Simulation, T extends Cell> { public Simulation(XMLData data) public void step() public S getCurrentState(int row, int col) public XMLData getXMLData() } package cellsociety.model.simulation.cell; public class PercolationCell extends Cell { public PercolationCell(PercolationStates state, PercolationRule rule) public PercolationCell(PercolationStates state, int[] position, PercolationRule rule) public void calcNextState() public void step() } package cellsociety.model.simulation.cell; public class SegregationCell extends Cell { public SegregationCell(SegregationStates state, SegregationRule rule) public SegregationCell(SegregationStates state, int[] position, SegregationRule rule) public void calcNextState() public void step() } package cellsociety.model.simulation.cell; public class FireCell extends Cell { public FireCell(FireStates state, FireRule rule) public FireCell(FireStates state, int[] position, FireRule rule) public void calcNextState() public void step() } package cellsociety.model.simulation.cell; public class WaTorCell extends Cell { public WaTorCell(WaTorStates state, WaTorRule rule) public WaTorCell(WaTorStates state, int[] position, WaTorRule rule) public int getStepsSurvived() public void setStepsSurvived(int stepsSurvived) public void setEnergy(int energy) public int getEnergy() public boolean isConsumed() public void setConsumed(boolean consumed) public void calcNextState() public void setNextState(WaTorStates state, int stepsSurvived, int energy) public void setNextState(WaTorStates state, int stepsSurvived, int energy, WaTorCell movedFrom) public void step() public void resetParameters() } package cellsociety.model.simulation.cell; public class GameOfLifeCell extends Cell { public GameOfLifeCell(GameOfLifeStates state, GameOfLifeRule rule) public GameOfLifeCell(GameOfLifeStates state, int[] position, GameOfLifeRule rule) public void calcNextState() public void step() } package cellsociety.model.simulation.rules; public class PercolationRule extends Rule { public PercolationRule(Map parameters) public PercolationStates apply(PercolationCell cell) } package cellsociety.model.simulation.rules; public class SegregationRule extends Rule { public SegregationRule(Map parameters) public SegregationStates apply(SegregationCell cell) } package cellsociety.model.simulation.rules; public class FireRule extends Rule { public FireRule(Map parameters) public FireStates apply(FireCell cell) } package cellsociety.model.simulation.rules; public class WaTorRule extends Rule { public WaTorRule(Map parameters) public WaTorStates apply(WaTorCell cell) } package cellsociety.model.simulation.rules; public class GameOfLifeRule extends Rule { public GameOfLifeRule(Map parameters) public GameOfLifeStates apply(GameOfLifeCell cell) } package cellsociety.model.simulation.grid; public class AdjacentGrid, T extends Cell> extends Grid { public AdjacentGrid(List cells, int rows, int cols) public void setNeighbors() } package cellsociety.model.simulation.grid; public class RectangularGrid, T extends Cell> extends Grid { public RectangularGrid(List cells, int rows, int cols) public void setNeighbors() } package cellsociety.model.interfaces; public abstract class Grid, T extends Cell> { public Grid(List cells, int rows, int cols) public abstract void setNeighbors(); public void setNeighbors(int[][] directions) public void initializeCells(List cells) public List getNeighbors(int[] position) public boolean isValidPosition(int row, int col) public T getCell(int row, int col) public void setCell(int row, int col, T cell) public int getRows() public int getCols() public List> getGrid() } package cellsociety.model.interfaces; public abstract class Cell, U extends Cell> { public Cell(S state) public Cell(S state, int[] position) public abstract void calcNextState(); public abstract void step(); public void resetParameters() public S getCurrentState() public void setCurrentState(S state) public S getNextState() public void setNextState(S state) public int[] getPosition() public void setPosition(int[] position) public List getNeighbors() public void setNeighbors(List neighbors) public boolean addNeighbor(U neighbor) public boolean removeNeighbor(U neighbor) } package cellsociety.model.interfaces; public abstract class Rule, C extends Cell> { public Rule(Map parameters) public abstract S apply(C cell); public Map getParameters() public void setParameters(Map parameters) } package cellsociety.view.utils; public class DateTime { public static String getLocalDateTime() } package cellsociety.view.components; public class FireCellView extends CellView { public FireCellView(double x, double y, double width, double height, FireStates cellState) protected Color getColorForState(FireStates state) } package cellsociety.view.components; public class SimulationView { public SimulationView(double width, double height) public Pane getDisplay() public void configureFromXML(XMLData xmlData) public void initializeGridView() public void stepGridSimulation() public void resetGrid() public Simulation getSimulation() } package cellsociety.view.components; public class ControlPanel { public ControlPanel(UserView userView) public VBox getPanel() } package cellsociety.view.components; public class UserView { public UserView(int sceneWidth, int sceneHeight, Stage stage) public void resetView() public void playSimulation() public void pauseSimulation() public void stopAndResetSimulation() public void loadSimulation() public static void showMessage (AlertType type, String message) public void saveSimulation() public void changeSimulationSpeed(double adjustmentFactor) public void loadRandomGameOfLife() } package cellsociety.view.components; public class FileExplorer { public static FileChooser getFileLoadChooser() public static FileChooser getSaveFileChooser() } package cellsociety.view.components; public class StateColorLegend { public StateColorLegend() public VBox getLegendBox() public void updateLegend(SimType simulationType) } package cellsociety.view.components; public class SegregationCellView extends CellView { public SegregationCellView(double x, double y, double width, double height, SegregationStates cellState) protected Color getColorForState(SegregationStates state) } package cellsociety.view.components; public class PercolationCellView extends CellView { public PercolationCellView(double x, double y, double width, double height, PercolationStates cellState) protected Color getColorForState(PercolationStates state) } package cellsociety.view.components; public class GameOfLifeCellView extends CellView { public GameOfLifeCellView(double x, double y, double width, double height, GameOfLifeStates cellState) protected Color getColorForState(GameOfLifeStates state) } package cellsociety.view.components; public class RandomSimulationGenerator { public static XMLData createRandomGameOfLifeXML() } package cellsociety.view.components; public class InformationBox { public InformationBox() public TextArea getTextArea() public void updateInfo(XMLData data) public void emptyFields() } package cellsociety.view.components; public class WaTorCellView extends CellView { public WaTorCellView(double x, double y, double width, double height, WaTorStates cellState) protected Color getColorForState(WaTorStates state) } package cellsociety.view.interfaces; public abstract class CellView> { protected CellView(double x, double y, double width, double height, S cellState) protected Shape createShape(double x, double y, double width, double height) public Shape getShape() public void setCellState(S state) public S getCellState() public void updateViewColor() protected abstract Color getColorForState(S state); }