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
243
244 public boolean isError()
245 {
246 return (field_5_fError != ( byte ) 0);
247 }
248
249 public String toString()
250 {
251 StringBuffer buffer = new StringBuffer();
252
253 buffer.append("[BOOLERR]\n");
254 buffer.append(" .row = ")
255 .append(Integer.toHexString(getRow())).append("\n");
256 buffer.append(" .col = ")
257 .append(Integer.toHexString(getColumn())).append("\n");
258 buffer.append(" .xfindex = ")
259 .append(Integer.toHexString(getXFIndex())).append("\n");
260 if (isBoolean())
261 {
262 buffer.append(" .booleanValue = ").append(getBooleanValue())
263 .append("\n");
264 }
265 else
266 {
267 buffer.append(" .errorValue = ").append(getErrorValue())
268 .append("\n");
269 }
270 buffer.append("[/BOOLERR]\n");
271 return buffer.toString();
272 }
273
274
281
282 public int serialize(int offset, byte [] data)
283 {
284 LittleEndian.putShort(data, 0 + offset, sid);
285 LittleEndian.putShort(data, 2 + offset, ( short ) 8);
286
287 LittleEndian.putShort(data, 4 + offset, ( short ) getRow());
288 LittleEndian.putShort(data, 6 + offset, getColumn());
289 LittleEndian.putShort(data, 8 + offset, getXFIndex());
290 data[ 10 + offset ] = field_4_bBoolErr;
291 data[ 11 + offset ] = field_5_fError;
292 return getRecordSize();
293 }
294
295 public int getRecordSize()
296 {
297 return 12;
298 }
299
300
306
307 protected void validateSid(short id)
308 {
309 if (id != this.sid)
310 {
311 throw new RecordFormatException("Not a valid BoolErrRecord");
312 }
313 }
314
315 public short getSid()
316 {
317 return this.sid;
318 }
319
320 public boolean isBefore(CellValueRecordInterface i)
321 {
322 if (this.getRow() > i.getRow())
323 {
324 return false;
325 }
326 if ((this.getRow() == i.getRow())
327 && (this.getColumn() > i.getColumn()))
328 {
329 return false;
330 }
331 if ((this.getRow() == i.getRow())
332 && (this.getColumn() == i.getColumn()))
333 {
334 return false;
335 }
336 return true;
337 }
338
339 public boolean isAfter(CellValueRecordInterface i)
340 {
341 if (this.getRow() < i.getRow())
342 {
343 return false;
344 }
345 if ((this.getRow() == i.getRow())
346 && (this.getColumn() < i.getColumn()))
347 {
348 return false;
349 }
350 if ((this.getRow() == i.getRow())
351 && (this.getColumn() == i.getColumn()))
352 {
353 return false;
354 }
355 return true;
356 }
357
358 public boolean isEqual(CellValueRecordInterface i)
359 {
360 return ((this.getRow() == i.getRow())
361 && (this.getColumn() == i.getColumn()));
362 }
363
364 public boolean isInValueSection()
365 {
366 return true;
367 }
368
369 public boolean isValue()
370 {
371 return true;
372 }
373
374 public int compareTo(Object obj)
375 {
376 CellValueRecordInterface loc = ( CellValueRecordInterface ) obj;
377
378 if ((this.getRow() == loc.getRow())
379 && (this.getColumn() == loc.getColumn()))
380 {
381 return 0;
382 }
383 if (this.getRow() < loc.getRow())
384 {
385 return -1;
386 }
387 if (this.getRow() > loc.getRow())
388 {
389 return 1;
390 }
391 if (this.getColumn() < loc.getColumn())
392 {
393 return -1;
394 }
395 if (this.getColumn() > loc.getColumn())
396 {
397 return 1;
398 }
399 return -1;
400 }
401
402 public boolean equals(Object obj)
403 {
404 if (!(obj instanceof CellValueRecordInterface))
405 {
406 return false;
407 }
408 CellValueRecordInterface loc = ( CellValueRecordInterface ) obj;
409
410 if ((this.getRow() == loc.getRow())
411 && (this.getColumn() == loc.getColumn()))
412 {
413 return true;
414 }
415 return false;
416 }
417
418 public Object clone() {
419 BoolErrRecord rec = new BoolErrRecord();
420 rec.field_1_row = field_1_row;
421 rec.field_2_column = field_2_column;
422 rec.field_3_xf_index = field_3_xf_index;
423 rec.field_4_bBoolErr = field_4_bBoolErr;
424 rec.field_5_fError = field_5_fError;
425 return rec;
426 }
427 }
428