1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package eu.simuline.octave.io.impl;
17
18 import java.io.IOException;
19 import java.io.Writer;
20
21 import eu.simuline.octave.io.OctaveIO;
22 import eu.simuline.octave.io.spi.OctaveDataWriter;
23 import eu.simuline.octave.type.OctaveCell;
24 import eu.simuline.octave.type.OctaveObject;
25
26
27
28
29
30 public final class CellWriter extends OctaveDataWriter<OctaveCell> {
31
32
33 static final String TYPE_CELL = "# type: cell";
34
35
36 static final String NROWS = "# rows: ";
37 static final String NCOLUMNS = "# columns: ";
38
39
40 @Override
41 public Class<OctaveCell> javaType() {
42 return OctaveCell.class;
43 }
44
45 @Override
46 public void write(final Writer writer,
47 final OctaveCell octaveCell) throws IOException {
48 final int rows = octaveCell.getSize(1);
49 final int columns = octaveCell.getSize(2);
50 writer.write("# type: cell\n");
51 writer.write("# rows: " + rows + "\n");
52 writer.write("# columns: " + columns + "\n");
53 for (int c = 1; c <= columns; ++c) {
54 for (int r = 1; r <= rows; ++r) {
55 final OctaveObject value = octaveCell.get(r, c);
56 OctaveIO.write(writer, "<cell-element>", value);
57 }
58 writer.write("\n");
59 }
60 }
61
62 }