1 /
55
56
61 package org.apache.poi.hssf.record;
62
63 import org.apache.poi.util.LittleEndian;
64
65
72
73 public class BoolErrRecord
74 extends Record
75 implements CellValueRecordInterface, Comparable
76 {
77 public final static short sid = 0x205;
78
79 private int field_1_row;
80 private short field_2_column;
81 private short field_3_xf_index;
82 private byte field_4_bBoolErr;
83 private byte field_5_fError;
84
85
86
87 public BoolErrRecord()
88 {
89 }
90
91
98
99 public BoolErrRecord(short id, short size, byte [] data)
100 {
101 super(id, size, data);
102 }
103
104
112
113 public BoolErrRecord(short id, short size, byte [] data, int offset)
114 {
115 super(id, size, data, offset);
116 }
117
118
125
126 protected void fillFields(byte [] data, short size, int offset)
127 {
128
129 field_1_row = LittleEndian.getUShort(data, 0 + offset);
130 field_2_column = LittleEndian.getShort(data, 2 + offset);
131 field_3_xf_index = LittleEndian.getShort(data, 4 + offset);
132 field_4_bBoolErr = data[ 6 + offset ];
133 field_5_fError = data[ 7 + offset ];
134 }
135
136
137 public void setRow(int row)
138 {
139 field_1_row = row;
140 }
141
142 public void setColumn(short col)
143 {
144 field_2_column = col;
145 }
146
147
152
153 public void setXFIndex(short xf)
154 {
155 field_3_xf_index = xf;
156 }
157
158
163
164 public void setValue(boolean value)
165 {
166 field_4_bBoolErr = value ? ( byte ) 1
167 : ( byte ) 0;
168 field_5_fError = ( byte ) 0;
169 }
170
171
176
177 public void setValue(byte value)
178 {
179 field_4_bBoolErr = value;
180 field_5_fError = ( byte ) 1;
181 }
182
183
184 public int getRow()
185 {
186 return field_1_row;
187 }
188
189 public short getColumn()
190 {
191 return field_2_column;
192 }
193
194
199
200 public short getXFIndex()
201 {
202 return field_3_xf_index;
203 }
204
205
210
211 public boolean getBooleanValue()
212 {
213 return (field_4_bBoolErr != 0);
214 }
215
216
221
222 public byte getErrorValue()
223 {
224 return field_4_bBoolErr;
225 }
226
227
232
233 public boolean isBoolean()
234 {
235 return (field_5_fError == ( byte ) 0);
236 }
237
238
241 public void setError(boolean val) {
242 field_5_fError = (byte) (val == false ? 0 : 1);
243 }
244
245
250
251 public boolean isError()
252 {
253 return (field_5_fError != ( byte ) 0);
254 }
255
256 public String toString()
257 {
258 StringBuffer buffer = new StringBuffer();
259
260 buffer.append("[BOOLERR]\n");
261 buffer.append(" .row = ")
262 .append(Integer.toHexString(getRow())).append("\n");
263 buffer.append(" .col = ")
264 .append(Integer.toHexString(getColumn())).append("\n");
265 buffer.append(" .xfindex = ")
266 .append(Integer.toHexString(getXFIndex())).append("\n");
267 if (isBoolean())
268 {
269 buffer.append(" .booleanValue = ").append(getBooleanValue())
270 .append("\n");
271 }
272 else
273 {
274 buffer.append(" .errorValue = ").append(getErrorValue())
275 .append("\n");
276 }
277 buffer.append("[/BOOLERR]\n");
278 return buffer.toString();
279 }
280
281
288
289 public int serialize(int offset, byte [] data)
290 {
291 LittleEndian.putShort(data, 0 + offset, sid);
292 LittleEndian.putShort(data, 2 + offset, ( short ) 8);
293
294 LittleEndian.putShort(data, 4 + offset, ( short ) getRow());
295 LittleEndian.putShort(data, 6 + offset, getColumn());
296 LittleEndian.putShort(data, 8 + offset, getXFIndex());
297 data[ 10 + offset ] = field_4_bBoolErr;
298 data[ 11 + offset ] = field_5_fError;
299 return getRecordSize();
300 }
301
302 public int getRecordSize()
303 {
304 return 12;
305 }
306
307
313
314 protected void validateSid(short id)
315 {
316 if (id != this.sid)
317 {
318 throw new RecordFormatException("Not a valid BoolErrRecord");
319 }
320 }
321
322 public short getSid()
323 {
324 return this.sid;
325 }
326
327 public boolean isBefore(CellValueRecordInterface i)
328 {
329 if (this.getRow() > i.getRow())
330 {
331 return false;
332 }
333 if ((this.getRow() == i.getRow())
334 && (this.getColumn() > i.getColumn()))
335 {
336 return false;
337 }
338 if ((this.getRow() == i.getRow())
339 && (this.getColumn() == i.getColumn()))
340 {
341 return false;
342 }
343 return true;
344 }
345
346 public boolean isAfter(CellValueRecordInterface i)
347 {
348 if (this.getRow() < i.getRow())
349 {
350 return false;
351 }
352 if ((this.getRow() == i.getRow())
353 && (this.getColumn() < i.getColumn()))
354 {
355 return false;
356 }
357 if ((this.getRow() == i.getRow())
358 && (this.getColumn() == i.getColumn()))
359 {
360 return false;
361 }
362 return true;
363 }
364
365 public boolean isEqual(CellValueRecordInterface i)
366 {
367 return ((this.getRow() == i.getRow())
368 && (this.getColumn() == i.getColumn()));
369 }
370
371 public boolean isInValueSection()
372 {
373 return true;
374 }
375
376 public boolean isValue()
377 {
378 return true;
379 }
380
381 public int compareTo(Object obj)
382 {
383 CellValueRecordInterface loc = ( CellValueRecordInterface ) obj;
384
385 if ((this.getRow() == loc.getRow())
386 && (this.getColumn() == loc.getColumn()))
387 {
388 return 0;
389 }
390 if (this.getRow() < loc.getRow())
391 {
392 return -1;
393 }
394 if (this.getRow() > loc.getRow())
395 {
396 return 1;
397 }
398 if (this.getColumn() < loc.getColumn())
399 {
400 return -1;
401 }
402 if (this.getColumn() > loc.getColumn())
403 {
404 return 1;
405 }
406 return -1;
407 }
408
409 public boolean equals(Object obj)
410 {
411 if (!(obj instanceof CellValueRecordInterface))
412 {
413 return false;
414 }
415 CellValueRecordInterface loc = ( CellValueRecordInterface ) obj;
416
417 if ((this.getRow() == loc.getRow())
418 && (this.getColumn() == loc.getColumn()))
419 {
420 return true;
421 }
422 return false;
423 }
424
425 public Object clone() {
426 BoolErrRecord rec = new BoolErrRecord();
427 rec.field_1_row = field_1_row;
428 rec.field_2_column = field_2_column;
429 rec.field_3_xf_index = field_3_xf_index;
430 rec.field_4_bBoolErr = field_4_bBoolErr;
431 rec.field_5_fError = field_5_fError;
432 return rec;
433 }
434 }
435