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.formula;
22
23 import org.millscript.commons.alert.alerts.Unimplemented;
24
25
26 /**
27 *
28 */
29 public class OffsetCellAddress extends CellAddress {
30
31 public OffsetCellAddress( final int row, final boolean rowRel, final int col, final boolean colRel ) {
32 super( row, rowRel, col, colRel );
33 }
34
35 /**
36 * @see org.millscript.office.spreadsheet.formula.CellAddress#getCellAddress(int, int)
37 */
38 @Override
39 public CellAddress getCellAddress( final int row, final int col ) {
40
41 throw new Unimplemented(
42 "A getCellAddress operation was required"
43 ).culprit( "class", this.getClass() );
44 }
45
46 /**
47 * @see org.millscript.office.spreadsheet.formula.CellAddress#getColumnRelativeTo(int)
48 */
49 @Override
50 public int getColumnRelativeTo( final int startingColumn ) {
51 if ( this.isColumnRelative() ) {
52 return startingColumn + this.getColumn();
53 } else {
54 return this.getColumn();
55 }
56 }
57
58 /**
59 * @see org.millscript.office.spreadsheet.formula.CellAddress#getRowRelativeTo(int)
60 */
61 @Override
62 public int getRowRelativeTo( final int startingRow ) {
63 if ( this.isRowRelative() ) {
64 return startingRow + this.getRow();
65 } else {
66 return this.getRow();
67 }
68 }
69
70 /**
71 * @see java.lang.Object#toString()
72 */
73 @Override
74 public String toString() {
75 final StringBuilder builder = new StringBuilder( "ABSOLUTE( " );
76 this.appendColumnLetters( builder );
77 builder.append( this.getRow() );
78 builder.append( " )" );
79 return builder.toString();
80 }
81
82 }