/** * Prints a cell set. * * @param cellSet Cell set * @param pw Writer */ private static void print(CellSet cellSet, PrintWriter pw) { pw.println("Axis #0:"); printAxis(pw, cellSet.getFilterAxis()); final List<CellSetAxis> axes = cellSet.getAxes(); final int axisCount = axes.size(); for (int i = 0; i < axisCount; i++) { CellSetAxis axis = axes.get(i); pw.println("Axis #" + (i + 1) + ":"); printAxis(pw, axis); } // Usually there are 3 axes: {filter, columns, rows}. Position is a // {column, row} pair. We call printRows with axis=2. When it // recurses to axis=-1, it prints. List<Integer> pos = new ArrayList<Integer>(axisCount); for (int i = 0; i < axisCount; i++) { pos.add(-1); } if (axisCount == 0) { printCell(cellSet, pw, pos); } else { printRows(cellSet, pw, axisCount - 1, pos); } }