package cellsociety.cells; public class Cell { public Cell(int state) public Cell() public Cell(Cell cellToClone) public boolean isDefaultState() public int getState() public void setState(int newState) public int hashCode() public boolean equals(Object otherObj) } package cellsociety.fileio; public class MapStyleElem { public static Map parse(Node mapStyleNode) public static void create(Map keyValueMap, Node rootNode) } package cellsociety.fileio; public class Preferences implements Map { public Preferences(Path preferencesFilePath) public int size() public boolean isEmpty() public boolean containsKey(Object key) public boolean containsValue(Object value) public String get(Object key) public String put(String key, String value) public String remove(Object key) public void putAll(@NotNull Map m) public void clear() public Set keySet() public Collection values() public Set> entrySet() public String getOrDefault(Object key, String defaultValue) public String putIfAbsent(String key, String value) } package cellsociety.fileio; public class FileParser { public static SimulationData[] parseFromPath(Path filePath) throws FileIoToolsException public static SimulationData[] parseFromString(String xmlString) throws FileIoToolsException } package cellsociety.fileio; public class FileIoToolsException extends Exception { public FileIoToolsException() public FileIoToolsException(String msg) public FileIoToolsException(String msg, Throwable e) } package cellsociety.fileio; public class XmlFileReader { public static Document parse(String xmlString) throws FileIoToolsException } package cellsociety.fileio; public class SimulationOverview { public String getTitle() public void setTitle(@NotNull String title) public List getAuthors() public void setAuthors(@NotNull List authors) public String getDescription() public void setDescription(@NotNull String description) } package cellsociety.fileio; public class SimulationData { public Grid getGrid() public void setGrid(Grid cellGrid) public Map getConfiguration() public void setConfiguration(@NotNull Map configuration) public Map getParameters() public void setParameters(@NotNull Map parameters) public SimulationOverview getOverview() public void setOverview(@NotNull SimulationOverview overview) } package cellsociety.fileio; public class FileGenerator { public static void createAndWrite(SimulationData simulationData, Path outputPath) public static void createAndWrite(SimulationData[] simulationDataArr, Path outputPath) public static String createFile(SimulationData[] simulationDataArr) throws FileIoToolsException public static Element createSimulationElem(Document doc, SimulationData simulationData) } package cellsociety.fileio; public class XmlFileWriter { public static String stringify(Document doc) throws FileIoToolsException } package cellsociety.gridutilities; public abstract class WrappingGrid extends Grid { public WrappingGrid(int rowCount, int columnCount) public WrappingGrid(@NotNull Grid gridToClone) public int[] normalizeCoordinates(int row, int column, int repetitionRate) public boolean isInBounds(int row, int column) public Cell getCell(int row, int column) public void setCell(int row, int column, Cell cell) } package cellsociety.gridutilities; public class MirrorGrid extends WrappingGrid { public MirrorGrid(int rowCount, int columnCount) public MirrorGrid(Grid inputGrid) public int[] transformCoordinates(int row, int column) } package cellsociety.gridutilities; public class CrossSurfaceGrid extends WrappingGrid { public CrossSurfaceGrid(int rowCount, int columnCount) public CrossSurfaceGrid(Grid inputGrid) public int[] transformCoordinates(int row, int column) } package cellsociety.gridutilities; public class Grid implements Iterable { public Grid(int rowCount, int columnCount) public Grid(@NotNull Grid gridToClone) public @NotNull Iterator iterator() public boolean hasNext() public Cell next() public void remove() public int[] transformCoordinates(int row, int column) public Cell getCell(int row, int column) public void setCell(int row, int column, Cell cell) public int getRowCount() public int getColumnCount() public void insertColumns(int position, int count) public void insertRows(int position, int count) public void deleteRows(int position, int count) public void deleteColumns(int position, int count) public boolean isInBounds(int row, int column) public int getTotalCells() public Map getStateFrequencies() } package cellsociety.gridutilities; public class ToroidalGrid extends WrappingGrid { public ToroidalGrid(int rowCount, int columnCount) public ToroidalGrid(Grid inputGrid) public int[] transformCoordinates(int row, int column) } package cellsociety.gridutilities; public class GridView { public GridView(Grid grid, int padding) public int getColumnCount() public int getRowCount() public Cell getCell(int row, int col) public Grid getGrid() public void setGrid(Grid grid) public int getPaddingColumnStart() public void setPaddingColumnStart(int paddingColumnStart) public int getPaddingRowStart() public void setPaddingRowStart(int paddingRowStart) public int getPaddingColumnEnd() public void setPaddingColumnEnd(int paddingColumnEnd) public int getPaddingRowEnd() public void setPaddingRowEnd(int paddingRowEnd) } package cellsociety; public class SimulationManager { public SimulationManager(Stage primaryStage) public static Map calculateChanges(Map prevStates, public void initializeStartScene() public void setSimulationScene() public BorderPane setRootBorderPane() public void handle(long now) public void nextStep() public void renderPlots(Map prevStates, Map nowStates) public void renderGrid() public void startAnimation() public void stopAnimation() public boolean getIsPaused() public void setPaused(boolean paused) public double getUpdateInterval() public void setUpdateInterval(double updateInterval) public SimulationData getSimulationFileData() public void setSimulationFileData(SimulationData simulationFileData, public void initializeLanguageSelectionScene() public TopBar getTopBar() } package cellsociety.simulations; public abstract class Simulation { public Simulation(Grid grid) public abstract void initialize(); public abstract void calculateNextState(); public Grid getGrid() public abstract int maxDataValue(); public void setNeighborType(String type) public List getNeighbors(int row, int col) } package cellsociety.simulations; public class FallingMaterials extends Simulation { public FallingMaterials(Grid grid, Map simulationParameters) public void initialize() public void calculateNextState() public int maxDataValue() } package cellsociety.simulations; public class SchellingsSegregation extends Simulation { public SchellingsSegregation(Grid grid, Map simulationParameters) public void initialize() public void calculateNextState() public int maxDataValue() } package cellsociety.simulations; public class SpreadingOfFireSimulation extends Simulation { public SpreadingOfFireSimulation(Grid grid, Map simulationParameters) public void initialize() public void calculateNextState() public int maxDataValue() } package cellsociety.simulations; public class SimulationsConstants { public static String getDisplayName(String inputStr) } package cellsociety.simulations; public class LangtonsLoop extends Simulation { public LangtonsLoop(Grid grid, Map simulationParameters) public void initialize() public void calculateNextState() public int maxDataValue() } package cellsociety.simulations; public class GameOfLifeSimulation extends Simulation { public GameOfLifeSimulation(Grid grid, Map simulationParameters) public void initialize() public void calculateNextState() public int maxDataValue() } package cellsociety.simulations; public class WaTorWorldSimulation extends Simulation { public WaTorWorldSimulation(Grid grid, Map simulationParameters) public void initialize() public void calculateNextState() public int maxDataValue() } package cellsociety.simulations; public class PercolationSimulation extends Simulation { public PercolationSimulation(Grid grid, Map simulationParameters) public void initialize() public void calculateNextState() public int maxDataValue() } package cellsociety; public class Main extends Application { public void start(Stage primaryStage) } package cellsociety.gui; public class InputBox { public InputBox(Stage primaryStage, SimulationManager simulationManager) public VBox createInputBox(String buttonText) public Label createInputLabel(String labelString) } package cellsociety.gui; public class Utils { public static final Color[] cellColors public static Properties loadPropertiesFile(String fileName) throws IOException } package cellsociety.gui; public class DynamicChangesBar { public DynamicChangesBar(Stage primaryStage, SimulationManager simulationManager) public GridPane createControlBar() public ChoiceBox createGridTypeChoiceBox() public ChoiceBox createMaterialChoiceBox() public int getCurrentMaterial() } package cellsociety.gui; public class Plot { public Plot() public static BarChart createGeneralPlot(String title, String xlabel, public static XYChart.Series createSeries( } package cellsociety.gui; public class ErrorWindow { public static void displayErrorPopup(String title, String message) } package cellsociety.gui; public class TopBar { public TopBar(Stage primaryStage, SimulationManager simulationManager) public HBox createTopBar() public void initializeSimulationWindow() public void startTimeLine() public void stopTimeLine() } package cellsociety.gui; public class BottomBar { public BottomBar(SimulationManager simulationManager) public HBox createBottomBar() } package cellsociety.rules; public class PercolationRule extends Rule { public PercolationRule(Grid grid) public void calculateNextState() } package cellsociety.rules; public class LangtonsLoopRule extends Rule { public LangtonsLoopRule(Grid grid) public void calculateNextState() } package cellsociety.rules; public class SpreadingOfFireRule extends Rule { public SpreadingOfFireRule(Grid grid, double probCatch, double probIgnite, double probGrow) public void calculateNextState() protected int applyRuleToCell(Cell cell, Cell[] neighbors) } package cellsociety.rules; public class FallingMaterialsRule extends Rule { public FallingMaterialsRule(Grid grid) public void calculateNextState() } package cellsociety.rules; public class WaTorWorldRule extends Rule { public WaTorWorldRule(Grid grid, double fishBreedTime, double sharkBreedTime, public void calculateNextState() } package cellsociety.rules; public class SchellingsRule extends Rule { public SchellingsRule(Grid grid, double satisfactionThreshold) public void calculateNextState() } package cellsociety.rules; public abstract class Rule { public Rule(Grid grid) public abstract void calculateNextState(); public void initialize() protected int applyRuleToCell(Cell cell, Cell[] neighbors) } package cellsociety.rules; public class GameOfLifeRule extends Rule { public GameOfLifeRule(Grid grid) public void calculateNextState() }