public List<Cell> findNeighbors() {

        List<Cell> neighbors = null;
        CellCase cellCase = cell.getCellCase();

        switch (cellCase) {
            case TOP_LEFT_CORNER:
                neighbors = findNeighborsForTopLeftCornerCell();
                break;
            case TOP_RIGHT_CORNER:
                neighbors = findNeighborsForTopRightCornerCell();
                break;
            case BOTTOM_LEFT_CORNER:
                neighbors = findNeighborsForBottomLeftCornerCell();
                break;
            case BOTTOM_RIGHT_CORNER:
                neighbors = findNeighborsForBottomRightCornerCell();
                break;
            case TOP_BORDER:
                neighbors = findNeighborsForTopBorderCell();
                break;
            case RIGHT_BORDER:
                neighbors = findNeighborsForRightBorderCell();
                break;
            case LEFT_BORDER:
                neighbors = findNeighborsForLeftBorderCell();
                break;
            case BOTTOM_BORDER:
                neighbors = findNeighborsForBottomBorderCell();
                break;
            case MIDDLE:
                neighbors = findNeighborsForMiddleCells();
                break;
        }
        return neighbors;
    }