package cellsociety.util; public class AlertFactory { public AlertFactory() } public Alert makeAlert(String title, String message, Alert.AlertType type) } package cellsociety.util; public class ExceptionHandlerFactory { public ExceptionHandlerFactory() public void handle(String title, String description) } package cellsociety.util; public class ButtonFactory { public ButtonFactory() } } package cellsociety.controller; public class CsvParser implements GridParser { public CsvParser() public List> parseVals(String file, String type) public int getRows() public int getColumns() public void saveCurrentConfig(String filename, GridInterface grid) throws IOException } package cellsociety.controller; public interface ConfigurationParser { } package cellsociety.controller; public class SimulationController { public SimulationController(String language, Stage stage) public double getSecondDelay() public Display getView() public SimulationAbstract getModel() public Scene setScene() public Timeline getTimeline() public void saveFile(String path, String initialStates) throws IOException public void parseSim(String filePath) public void speedUpAnimation() public void slowDownAnimation() public void step() public void reset() throws SimPropertyNotFoundException, CsvValidationException, IOException } package cellsociety.controller; public class SimParser implements ConfigurationParser { public SimParser() public Map parseFile(String file) throws IOException, NullPointerException public void saveCurrentState(String fileName, Map attributes) throws IOException } package cellsociety.controller; public interface GridParser { } package cellsociety.controller; public class ResetController { public ResetController(GridParser parser, SimInterface model) public void reset() throws SimPropertyNotFoundException, CsvValidationException, IOException } package cellsociety.controller; public class NeighborController { public NeighborController(Display view, SimInterface model) public String getNeighborConfig() } package cellsociety; public class Main extends Application { public void start(Stage primaryStage) throws Exception } package cellsociety.model.cells; public class PercolationCell extends AutomaCellAbstract { public PercolationCell(int x, int y, int state) public PercolationCell(int x, int y, int state, double[] probabilities) public void calculateNextState() public void calcAndSetNumNeighborStates(List topNeighborStates) } package cellsociety.model.cells; public class SegregationCell extends AutomaCellAbstract { public SegregationCell(int x, int y, int state, double[] probabilities) public void calcAndSetNumNeighborStates(List neighborStates) public void calculateNextState() public boolean isSatisfied() } package cellsociety.model.cells; public abstract class AutomaCellAbstract implements AutomaCellInterface { public AutomaCellAbstract(int x, int y, int state) public void prepCellUpdate(List neighborStates) public void updateCell() public int getX() public int getY() public void addConsumer(Consumer consumer) public abstract void calculateNextState(); public abstract void calcAndSetNumNeighborStates(List neighborStates); public int getNextState() public void setNextState(int state) public int getCurrentState() public void setCurrentState(int state) } package cellsociety.model.cells; public class FireCell extends AutomaCellAbstract { public FireCell(int x, int y, int state, double[] probabilities) public void calcAndSetNumNeighborStates(List neighborStates) public void calculateNextState() } package cellsociety.model.cells; public class WatorWorldCell extends AutomaCellAbstract { public WatorWorldCell(int x, int y, int state) public WatorWorldCell(int x, int y, int state, double[] probabilities) public boolean getOccupied() public List getFishCount() public List getEmptyCount() public List getSharkCount() public void calculateNextState() public void calcAndSetNumNeighborStates(List neighborStates) public void updateCell() } package cellsociety.model.cells; public interface AutomaCellInterface { } package cellsociety.model.cells; public class GameOfLifeCell extends AutomaCellAbstract { public GameOfLifeCell(int x, int y, int state) public GameOfLifeCell(int x, int y, int state, double[] probabilities) public void calcAndSetNumNeighborStates(List neighborStates) public void calculateNextState() } package cellsociety.model.grids.square_grids; public class SquareGridCompleteNeighbors extends AbstractGrid { public SquareGridCompleteNeighbors( public SquareGridCompleteNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids.square_grids; public class SquareGridDistantNeighbors extends AbstractGrid { public SquareGridDistantNeighbors( public SquareGridDistantNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids.square_grids; public class SquareGridFiveNeighbors extends AbstractGrid { public SquareGridFiveNeighbors(int cols, int rows, List> initialLayout, String type) public SquareGridFiveNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids.square_grids; public class SquareGridCardinalNeighbors extends AbstractGrid { public SquareGridCardinalNeighbors( public SquareGridCardinalNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids.square_grids; public class SquareGridThreeNeighbors extends AbstractGrid { public SquareGridThreeNeighbors( public SquareGridThreeNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids; public abstract class AbstractGrid implements GridInterface { public AbstractGrid(int cols, int rows, List> initialLayout, String type) public AbstractGrid( public void reset(List> initialStates) public boolean isValid(int x, int y) public int minOrMaxX(int x) public int minOrMaxY(int y) public boolean isEdgeX(int x) public boolean isEdgeY(int y) public AutomaCellInterface getCell(int x, int y) public void evolveNextGrid() public void updateGrid() public abstract List calculateNeighborStates(int centerX, int centerY); public void printGrid() public int getWidth() public int getHeight() public boolean equals(Object o) public boolean getToroidal() public void setToroidal(boolean t) } package cellsociety.model.grids.hexagonal_grids; public class HexagonalGridCardinalNeighbors extends AbstractGrid { public HexagonalGridCardinalNeighbors( public HexagonalGridCardinalNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids.hexagonal_grids; public class HexagonalGridCompleteNeighbors extends AbstractGrid { public HexagonalGridCompleteNeighbors( public HexagonalGridCompleteNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids.hexagonal_grids; public class HexagonalGridDistantNeighbors extends AbstractGrid { public HexagonalGridDistantNeighbors( public HexagonalGridDistantNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids; public interface GridInterface { } package cellsociety.model.grids.triangle_grids; public class TriangleGridDistantNeighbors extends AbstractGrid { public TriangleGridDistantNeighbors( public TriangleGridDistantNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids.triangle_grids; public class TriangleGridCompleteNeighbors extends AbstractGrid { public TriangleGridCompleteNeighbors( public TriangleGridCompleteNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids.triangle_grids; public class TriangleGridCardinalNeighbors extends AbstractGrid { public TriangleGridCardinalNeighbors( public TriangleGridCardinalNeighbors( public List calculateNeighborStates(int centerX, int centerY) } package cellsociety.model.grids; public class SegregationGrid extends SquareGridCompleteNeighbors { public SegregationGrid(int cols, int rows, List> initialLayout, String type) public SegregationGrid( public void updateGrid() } package cellsociety.model.exceptions; public class SimPropertyNotFoundException extends Exception { public SimPropertyNotFoundException() } package cellsociety.model.exceptions; public class InvalidNumColorsException extends Exception { public InvalidNumColorsException() } package cellsociety.model.simulations; public class GameOfLifeSimulation extends SimulationAbstract { public GameOfLifeSimulation(Map properties) throws InvalidNumColorsException public String[] setDefaultColorMap() } package cellsociety.model.simulations; public class FireSimulation extends SimulationAbstract { public FireSimulation(Map properties) throws InvalidNumColorsException public String[] setDefaultColorMap() } package cellsociety.model.simulations; public class SegregationSimulation extends SimulationAbstract { public SegregationSimulation(Map properties) throws InvalidNumColorsException public String[] setDefaultColorMap() public void setGridNeighborType(List> values, String type, String shape) } package cellsociety.model.simulations; public abstract class SimulationAbstract implements SimInterface { public SimulationAbstract(Map properties) throws InvalidNumColorsException public abstract String[] setDefaultColorMap(); public void setGridNeighborType(List> values, String type, String shape) public String getInitialStates() public void step() public void setProbabilities(double[] prob) public GridInterface getGrid() public String[] getColorMapping() public int getNumStates() public String getProperty(String property) throws SimPropertyNotFoundException public String getType() public GridInterface getGridType() public void setGridType(String c) public void setGridTypes(String key, GridInterface val) } package cellsociety.model.simulations; public interface SimInterface { public void setGridNeighborType(List> values, String type, String shape) } package cellsociety.model.simulations; public class WatorWorldSimulation extends SimulationAbstract { public WatorWorldSimulation(Map properties) throws InvalidNumColorsException public String[] setDefaultColorMap() } package cellsociety.model.simulations; public class PercolationSimulation extends SimulationAbstract { public PercolationSimulation(Map properties) throws InvalidNumColorsException public String[] setDefaultColorMap() public void setGridNeighborType(List> values, String type, String shape) } package cellsociety.view.grids; public abstract class AbstractGrid implements GridView { public AbstractGrid(double width, double height, ResourceBundle resources) public void createGrid(SimulationAbstract simulation) public abstract Shape createShape(int x, int y); public Group addToScene() public CellView getCell(int x, int y) public Iterator iterator() public boolean hasNext() public CellView next() } package cellsociety.view.grids; public interface GridView extends Iterable { public Group addToScene(); public void createGrid(SimulationAbstract simulation); public CellView getCell(int x, int y); } package cellsociety.view.grids; public class RectangularGridView extends AbstractGrid { public RectangularGridView(double width, double height, ResourceBundle resources) public Shape createShape(int x, int y) } package cellsociety.view.grids; public class TriangularGridView extends AbstractGrid { public TriangularGridView(double width, double height, ResourceBundle resources) public Shape createShape(int x, int y) } package cellsociety.view; public class LifeDisplay {} } package cellsociety.view; public class Display { public Display(SimulationController controller, String language, Stage stage) public Scene setScene() public void initDynamicView(SimulationAbstract simulation) public GridView getGrid() public void addNeighborConfigConsumer(Consumer consumer) } package cellsociety.view; public class CellView { public CellView(SimulationAbstract sim, Shape shape, AutomaCellInterface simCell) public int getX() public int getY() public Color getColor() public List getColorMapping() public void changeState(int newState) }