1 /
55
56
57 package org.apache.poi.hssf.record;
58
59
60
61 import org.apache.poi.util.BitField;
62 import org.apache.poi.util.LittleEndian;
63 import org.apache.poi.util.StringUtil;
64 import org.apache.poi.util.HexDump;
65
66
73 public class SeriesRecord
74 extends Record
75 {
76 public final static short sid = 0x1003;
77 private short field_1_categoryDataType;
78 public final static short CATEGORY_DATA_TYPE_DATES = 0;
79 public final static short CATEGORY_DATA_TYPE_NUMERIC = 1;
80 public final static short CATEGORY_DATA_TYPE_SEQUENCE = 2;
81 public final static short CATEGORY_DATA_TYPE_TEXT = 3;
82 private short field_2_valuesDataType;
83 public final static short VALUES_DATA_TYPE_DATES = 0;
84 public final static short VALUES_DATA_TYPE_NUMERIC = 1;
85 public final static short VALUES_DATA_TYPE_SEQUENCE = 2;
86 public final static short VALUES_DATA_TYPE_TEXT = 3;
87 private short field_3_numCategories;
88 private short field_4_numValues;
89 private short field_5_bubbleSeriesType;
90 public final static short BUBBLE_SERIES_TYPE_DATES = 0;
91 public final static short BUBBLE_SERIES_TYPE_NUMERIC = 1;
92 public final static short BUBBLE_SERIES_TYPE_SEQUENCE = 2;
93 public final static short BUBBLE_SERIES_TYPE_TEXT = 3;
94 private short field_6_numBubbleValues;
95
96
97 public SeriesRecord()
98 {
99
100 }
101
102
110
111 public SeriesRecord(short id, short size, byte [] data)
112 {
113 super(id, size, data);
114 }
115
116
125
126 public SeriesRecord(short id, short size, byte [] data, int offset)
127 {
128 super(id, size, data, offset);
129 }
130
131
136 protected void validateSid(short id)
137 {
138 if (id != sid)
139 {
140 throw new RecordFormatException("Not a Series record");
141 }
142 }
143
144 protected void fillFields(byte [] data, short size, int offset)
145 {
146 field_1_categoryDataType = LittleEndian.getShort(data, 0x0 + offset);
147 field_2_valuesDataType = LittleEndian.getShort(data, 0x2 + offset);
148 field_3_numCategories = LittleEndian.getShort(data, 0x4 + offset);
149 field_4_numValues = LittleEndian.getShort(data, 0x6 + offset);
150 field_5_bubbleSeriesType = LittleEndian.getShort(data, 0x8 + offset);
151 field_6_numBubbleValues = LittleEndian.getShort(data, 0xa + offset);
152
153 }
154
155 public String toString()
156 {
157 StringBuffer buffer = new StringBuffer();
158
159 buffer.append("[Series]\n");
160
161 buffer.append(" .categoryDataType = ")
162 .append("0x")
163 .append(HexDump.toHex((short)getCategoryDataType()))
164 .append(" (").append(getCategoryDataType()).append(" )\n");
165
166 buffer.append(" .valuesDataType = ")
167 .append("0x")
168 .append(HexDump.toHex((short)getValuesDataType()))
169 .append(" (").append(getValuesDataType()).append(" )\n");
170
171 buffer.append(" .numCategories = ")
172 .append("0x")
173 .append(HexDump.toHex((short)getNumCategories()))
174 .append(" (").append(getNumCategories()).append(" )\n");
175
176 buffer.append(" .numValues = ")
177 .append("0x")
178 .append(HexDump.toHex((short)getNumValues()))
179 .append(" (").append(getNumValues()).append(" )\n");
180
181 buffer.append(" .bubbleSeriesType = ")
182 .append("0x")
183 .append(HexDump.toHex((short)getBubbleSeriesType()))
184 .append(" (").append(getBubbleSeriesType()).append(" )\n");
185
186 buffer.append(" .numBubbleValues = ")
187 .append("0x")
188 .append(HexDump.toHex((short)getNumBubbleValues()))
189 .append(" (").append(getNumBubbleValues()).append(" )\n");
190
191 buffer.append("[/Series]\n");
192 return buffer.toString();
193 }
194
195 public int serialize(int offset, byte[] data)
196 {
197 LittleEndian.putShort(data, 0 + offset, sid);
198 LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
199
200 LittleEndian.putShort(data, 4 + offset, field_1_categoryDataType);
201 LittleEndian.putShort(data, 6 + offset, field_2_valuesDataType);
202 LittleEndian.putShort(data, 8 + offset, field_3_numCategories);
203 LittleEndian.putShort(data, 10 + offset, field_4_numValues);
204 LittleEndian.putShort(data, 12 + offset, field_5_bubbleSeriesType);
205 LittleEndian.putShort(data, 14 + offset, field_6_numBubbleValues);
206
207 return getRecordSize();
208 }
209
210
213 public int getRecordSize()
214 {
215 return 4 + 2 + 2 + 2 + 2 + 2 + 2;
216 }
217
218 public short getSid()
219 {
220 return this.sid;
221 }
222
223
224
233 public short getCategoryDataType()
234 {
235 return field_1_categoryDataType;
236 }
237
238
248 public void setCategoryDataType(short field_1_categoryDataType)
249 {
250 this.field_1_categoryDataType = field_1_categoryDataType;
251 }
252
253
262 public short getValuesDataType()
263 {
264 return field_2_valuesDataType;
265 }
266
267
277 public void setValuesDataType(short field_2_valuesDataType)
278 {
279 this.field_2_valuesDataType = field_2_valuesDataType;
280 }
281
282
285 public short getNumCategories()
286 {
287 return field_3_numCategories;
288 }
289
290
293 public void setNumCategories(short field_3_numCategories)
294 {
295 this.field_3_numCategories = field_3_numCategories;
296 }
297
298
301 public short getNumValues()
302 {
303 return field_4_numValues;
304 }
305
306
309 public void setNumValues(short field_4_numValues)
310 {
311 this.field_4_numValues = field_4_numValues;
312 }
313
314
323 public short getBubbleSeriesType()
324 {
325 return field_5_bubbleSeriesType;
326 }
327
328
338 public void setBubbleSeriesType(short field_5_bubbleSeriesType)
339 {
340 this.field_5_bubbleSeriesType = field_5_bubbleSeriesType;
341 }
342
343
346 public short getNumBubbleValues()
347 {
348 return field_6_numBubbleValues;
349 }
350
351
354 public void setNumBubbleValues(short field_6_numBubbleValues)
355 {
356 this.field_6_numBubbleValues = field_6_numBubbleValues;
357 }
358
359
360 }
361
362
363
364
365