1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.millscript.office.spreadsheet.rows;
22
23 import org.millscript.commons.util.ListIterator;
24 import org.millscript.commons.util.Listlet;
25 import org.millscript.commons.util.maplet.IListlet;
26 import org.millscript.office.spreadsheet.Cell;
27 import org.millscript.office.spreadsheet.CellRef;
28 import org.millscript.office.spreadsheet.RowRef;
29
30 /**
31 *
32 */
33 public class RowRefListIterator implements ListIterator< CellRef > {
34
35 private final RowRef worksheetRef;
36
37 private final ListIterator< Cell > rowIterator;
38
39 /**
40 *
41 */
42 public RowRefListIterator( final RowRef bookRef, final ListIterator< Cell > iterator ) {
43 this.worksheetRef = bookRef;
44 this.rowIterator = iterator;
45 }
46
47 public Integer currentKey() {
48 return this.rowIterator.currentKey();
49 }
50
51 public Listlet< CellRef > currentMaplet() {
52 return new IListlet< CellRef >(
53 this.rowIterator.currentKey(),
54 this.currentValue()
55 );
56 }
57
58 public CellRef currentValue() {
59 return new RowCellRefImpl(
60 this.worksheetRef,
61 this.rowIterator.currentKey().intValue(),
62 this.rowIterator.currentValue()
63 );
64 }
65
66 public boolean hasNext() {
67 return this.rowIterator.hasNext();
68 }
69
70 public Integer nextKey() {
71 return this.rowIterator.nextKey();
72 }
73
74 public Listlet< CellRef > nextMaplet() {
75 return new IListlet< CellRef >(
76 this.rowIterator.nextKey(),
77 this.currentValue()
78 );
79 }
80
81 public CellRef nextValue() {
82 return new RowCellRefImpl(
83 this.worksheetRef,
84 this.rowIterator.nextKey().intValue(),
85 this.rowIterator.currentValue()
86 );
87 }
88
89 }