1 /
55
56
57 package org.apache.poi.hssf.record;
58
59
60
61 import org.apache.poi.util.*;
62
63
70 public class BarRecord
71 extends Record
72 {
73 public final static short sid = 0x1017;
74 private short field_1_barSpace;
75 private short field_2_categorySpace;
76 private short field_3_formatFlags;
77 private BitField horizontal = new BitField(0x1);
78 private BitField stacked = new BitField(0x2);
79 private BitField displayAsPercentage = new BitField(0x4);
80 private BitField shadow = new BitField(0x8);
81
82
83 public BarRecord()
84 {
85
86 }
87
88
96
97 public BarRecord(short id, short size, byte [] data)
98 {
99 super(id, size, data);
100
101 }
102
103
112
113 public BarRecord(short id, short size, byte [] data, int offset)
114 {
115 super(id, size, data, offset);
116
117 }
118
119
124 protected void validateSid(short id)
125 {
126 if (id != sid)
127 {
128 throw new RecordFormatException("Not a Bar record");
129 }
130 }
131
132 protected void fillFields(byte [] data, short size, int offset)
133 {
134
135 int pos = 0;
136 field_1_barSpace = LittleEndian.getShort(data, pos + 0x0 + offset);
137 field_2_categorySpace = LittleEndian.getShort(data, pos + 0x2 + offset);
138 field_3_formatFlags = LittleEndian.getShort(data, pos + 0x4 + offset);
139
140 }
141
142 public String toString()
143 {
144 StringBuffer buffer = new StringBuffer();
145
146 buffer.append("[BAR]\n");
147 buffer.append(" .barSpace = ")
148 .append("0x").append(HexDump.toHex( getBarSpace ()))
149 .append(" (").append( getBarSpace() ).append(" )");
150 buffer.append(System.getProperty("line.separator"));
151 buffer.append(" .categorySpace = ")
152 .append("0x").append(HexDump.toHex( getCategorySpace ()))
153 .append(" (").append( getCategorySpace() ).append(" )");
154 buffer.append(System.getProperty("line.separator"));
155 buffer.append(" .formatFlags = ")
156 .append("0x").append(HexDump.toHex( getFormatFlags ()))
157 .append(" (").append( getFormatFlags() ).append(" )");
158 buffer.append(System.getProperty("line.separator"));
159 buffer.append(" .horizontal = ").append(isHorizontal()).append('\n');
160 buffer.append(" .stacked = ").append(isStacked()).append('\n');
161 buffer.append(" .displayAsPercentage = ").append(isDisplayAsPercentage()).append('\n');
162 buffer.append(" .shadow = ").append(isShadow()).append('\n');
163
164 buffer.append("[/BAR]\n");
165 return buffer.toString();
166 }
167
168 public int serialize(int offset, byte[] data)
169 {
170 int pos = 0;
171
172 LittleEndian.putShort(data, 0 + offset, sid);
173 LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
174
175 LittleEndian.putShort(data, 4 + offset + pos, field_1_barSpace);
176 LittleEndian.putShort(data, 6 + offset + pos, field_2_categorySpace);
177 LittleEndian.putShort(data, 8 + offset + pos, field_3_formatFlags);
178
179 return getRecordSize();
180 }
181
182
185 public int getRecordSize()
186 {
187 return 4 + 2 + 2 + 2;
188 }
189
190 public short getSid()
191 {
192 return this.sid;
193 }
194
195 public Object clone() {
196 BarRecord rec = new BarRecord();
197
198 rec.field_1_barSpace = field_1_barSpace;
199 rec.field_2_categorySpace = field_2_categorySpace;
200 rec.field_3_formatFlags = field_3_formatFlags;
201 return rec;
202 }
203
204
205
206
207
210 public short getBarSpace()
211 {
212 return field_1_barSpace;
213 }
214
215
218 public void setBarSpace(short field_1_barSpace)
219 {
220 this.field_1_barSpace = field_1_barSpace;
221 }
222
223
226 public short getCategorySpace()
227 {
228 return field_2_categorySpace;
229 }
230
231
234 public void setCategorySpace(short field_2_categorySpace)
235 {
236 this.field_2_categorySpace = field_2_categorySpace;
237 }
238
239
242 public short getFormatFlags()
243 {
244 return field_3_formatFlags;
245 }
246
247
250 public void setFormatFlags(short field_3_formatFlags)
251 {
252 this.field_3_formatFlags = field_3_formatFlags;
253 }
254
255
259 public void setHorizontal(boolean value)
260 {
261 field_3_formatFlags = horizontal.setShortBoolean(field_3_formatFlags, value);
262 }
263
264
268 public boolean isHorizontal()
269 {
270 return horizontal.isSet(field_3_formatFlags);
271 }
272
273
277 public void setStacked(boolean value)
278 {
279 field_3_formatFlags = stacked.setShortBoolean(field_3_formatFlags, value);
280 }
281
282
286 public boolean isStacked()
287 {
288 return stacked.isSet(field_3_formatFlags);
289 }
290
291
295 public void setDisplayAsPercentage(boolean value)
296 {
297 field_3_formatFlags = displayAsPercentage.setShortBoolean(field_3_formatFlags, value);
298 }
299
300
304 public boolean isDisplayAsPercentage()
305 {
306 return displayAsPercentage.isSet(field_3_formatFlags);
307 }
308
309
313 public void setShadow(boolean value)
314 {
315 field_3_formatFlags = shadow.setShortBoolean(field_3_formatFlags, value);
316 }
317
318
322 public boolean isShadow()
323 {
324 return shadow.isSet(field_3_formatFlags);
325 }
326
327
328 }
329
330
331
332
333