/* * Copyright 2010 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.examples.conway; /** * A <code>Cell</code> represents a single cell within a <code>CellGrid</code>. * A cell may be either live or dead. <p/> * * @see CellState * @see CellGridImpl */ public class Cell { private CellState cellState = CellState.DEAD; private int phase = Phase.DONE; private int liveNeighbors; private int col; private int row; public Cell(int col, int row) { this.col = col; this.row = row; } public int getCol() { return col; } public int getRow() { return row; } public int getPhase() { return this.phase; } public void setPhase(int phase) { this.phase = phase; } public int getLiveNeighbors() { return this.liveNeighbors; } public void setLiveNeighbors(int liveNeighbors) { this.liveNeighbors = liveNeighbors; } /** * @return this cell's current life state * @see #queueNextCellState(org.drools.examples.conway.CellState) * @see CellState */ public CellState getCellState() { return this.cellState; } /** * Sets this cells state * * @param newState * new state for this cell * @see CellState */ public void setCellState(final CellState newState) { this.cellState = newState; } public String toString() { return cellState + " col=" + this.col + " row=" + this.row + " phase '" + phase + "' liveNeighbors '" + liveNeighbors + "'"; } }