package cellsociety public class AutomatonController { public AutomatonController(File file) throws Exception public void step() public boolean play() public boolean pause() public double getStepDelay() public void setStepDelay(double stepDelay) public AutomatonConfiguration getConfiguration() public Automaton getAutomaton() public AutomatonView getView() } package cellsociety.util 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.util public class XMLParser { public XMLParser() throws XMLException public AutomatonConfiguration getAutomatonConfiguration(File data) throws XMLException } package cellsociety public class AutomatonApplication extends Application { public void start(Stage primaryStage) public Scene makeScene (int width, int height) } package cellsociety.model.configuration public class AutomatonConfiguration { public AutomatonConfiguration(AutomatonType type, String title, public AutomatonConfiguration(Map configuration) throws NullPointerException public AutomatonType getType() public String getTitle() public String getAuthor() public String getDescription() public List getParameters() public int getWidth() public int getColumns() public int getHeight() public int getRows() public String getDefaultState() public List getInitialStates() public String toString() } package cellsociety.model.state public interface State { int getIndex() } package cellsociety.model.cell public class PercolationCell extends Cell { public int getIndex() public PercolationCell(String initialState, HashMap parameters) public void calculateAndSetNextState() protected void initializeState(String initialState) } package cellsociety.model.cell public class SegregationCell extends Cell { public int getIndex() public SegregationCell(String initialState, HashMap parameters) public void calculateAndSetNextState() protected void initializeState(String initialState) } package cellsociety.model.cell public class FireCell extends Cell { public int getIndex() public FireCell(String initialState, HashMap parameters) public void calculateAndSetNextState() protected void initializeState(String initialState) } package cellsociety.model.cell public class WaTorCell extends Cell { public int getIndex() public WaTorCell(String initialState, HashMap parameters) public void calculateAndSetNextState() public void calculateAndSetNextStateShark() public void calculateAndSetNextStateFish() protected void initializeState(String initialState) } package cellsociety.model.cell public class GameOfLifeCell extends Cell { public int getIndex() public GameOfLifeCell(String initialState, HashMap parameters) public void calculateAndSetNextState() protected void initializeState(String initialState) } package cellsociety.model.cell public abstract class Cell { public Cell(String initialState, HashMap parameters) public State getCurrentState() public void setNeighbors(Collection neighbors) public abstract void calculateAndSetNextState() public void updateCurrentStateToNextState() throws IllegalStateException protected abstract void initializeState(String initialState) protected void setCurrentState(State state) protected Collection getNeighbors() protected State getNextState() protected boolean nextStateIsCalculated() protected void setNextState(State state) protected void setNextStateToCalculated() protected Object getParameter(String key) } package cellsociety.model.automaton public class PercolationAutomaton extends Automaton { public PercolationAutomaton(AutomatonConfiguration parameters) protected void setupNeighbors() protected Cell generateCell(String initialState, HashMap parameters) } package cellsociety.model.automaton public class FireAutomaton extends Automaton { public FireAutomaton(AutomatonConfiguration parameters) protected void setupNeighbors() protected Cell generateCell(String initialState, HashMap parameters) } package cellsociety.model.automaton public class GameOfLifeAutomaton extends Automaton { public GameOfLifeAutomaton(AutomatonConfiguration parameters) protected void setupNeighbors() protected Cell generateCell(String initialState, HashMap parameters) } package cellsociety.model.automaton public class SegregationAutomaton extends Automaton { public SegregationAutomaton(AutomatonConfiguration parameters) protected void setupNeighbors() protected Cell generateCell(String initialState, HashMap parameters) } package cellsociety.model.automaton public class WaTorAutomaton extends Automaton { public WaTorAutomaton(AutomatonConfiguration parameters) protected void setupNeighbors() protected Cell generateCell(String initialState, HashMap parameters) protected void calculateAndSetNextStates() } package cellsociety.model.automaton public abstract class Automaton { public Automaton(AutomatonConfiguration parameters) public void step() public State[][] getCurrentStates() protected abstract void setupNeighbors() protected void setupNeighborsFourDirections() protected void setupNeighborsEightDirections() protected Cell[][] getCells() protected void calculateAndSetNextStates() protected abstract Cell generateCell(String initialState, HashMap parameters) } package cellsociety.view public class ControlPanelView extends HBox { public AutomatonController getAutomatonController() public String toString(Double object) public Double fromString(String string) } package cellsociety.view public class AutomatonView extends GridPane { public AutomatonView(AutomatonConfiguration parameters) public void update(State[][] states) }