1 /
55
56
57 package org.apache.poi.hssf.record;
58
59
60
61 import org.apache.poi.util.*;
62
63
70 public class SeriesRecord
71 extends Record
72 {
73 public final static short sid = 0x1003;
74 private short field_1_categoryDataType;
75 public final static short CATEGORY_DATA_TYPE_DATES = 0;
76 public final static short CATEGORY_DATA_TYPE_NUMERIC = 1;
77 public final static short CATEGORY_DATA_TYPE_SEQUENCE = 2;
78 public final static short CATEGORY_DATA_TYPE_TEXT = 3;
79 private short field_2_valuesDataType;
80 public final static short VALUES_DATA_TYPE_DATES = 0;
81 public final static short VALUES_DATA_TYPE_NUMERIC = 1;
82 public final static short VALUES_DATA_TYPE_SEQUENCE = 2;
83 public final static short VALUES_DATA_TYPE_TEXT = 3;
84 private short field_3_numCategories;
85 private short field_4_numValues;
86 private short field_5_bubbleSeriesType;
87 public final static short BUBBLE_SERIES_TYPE_DATES = 0;
88 public final static short BUBBLE_SERIES_TYPE_NUMERIC = 1;
89 public final static short BUBBLE_SERIES_TYPE_SEQUENCE = 2;
90 public final static short BUBBLE_SERIES_TYPE_TEXT = 3;
91 private short field_6_numBubbleValues;
92
93
94 public SeriesRecord()
95 {
96
97 }
98
99
107
108 public SeriesRecord(short id, short size, byte [] data)
109 {
110 super(id, size, data);
111 }
112
113
122
123 public SeriesRecord(short id, short size, byte [] data, int offset)
124 {
125 super(id, size, data, offset);
126 }
127
128
133 protected void validateSid(short id)
134 {
135 if (id != sid)
136 {
137 throw new RecordFormatException("Not a Series record");
138 }
139 }
140
141 protected void fillFields(byte [] data, short size, int offset)
142 {
143 field_1_categoryDataType = LittleEndian.getShort(data, 0x0 + offset);
144 field_2_valuesDataType = LittleEndian.getShort(data, 0x2 + offset);
145 field_3_numCategories = LittleEndian.getShort(data, 0x4 + offset);
146 field_4_numValues = LittleEndian.getShort(data, 0x6 + offset);
147 field_5_bubbleSeriesType = LittleEndian.getShort(data, 0x8 + offset);
148 field_6_numBubbleValues = LittleEndian.getShort(data, 0xa + offset);
149
150 }
151
152 public String toString()
153 {
154 StringBuffer buffer = new StringBuffer();
155
156 buffer.append("[Series]\n");
157
158 buffer.append(" .categoryDataType = ")
159 .append("0x")
160 .append(HexDump.toHex((short)getCategoryDataType()))
161 .append(" (").append(getCategoryDataType()).append(" )\n");
162
163 buffer.append(" .valuesDataType = ")
164 .append("0x")
165 .append(HexDump.toHex((short)getValuesDataType()))
166 .append(" (").append(getValuesDataType()).append(" )\n");
167
168 buffer.append(" .numCategories = ")
169 .append("0x")
170 .append(HexDump.toHex((short)getNumCategories()))
171 .append(" (").append(getNumCategories()).append(" )\n");
172
173 buffer.append(" .numValues = ")
174 .append("0x")
175 .append(HexDump.toHex((short)getNumValues()))
176 .append(" (").append(getNumValues()).append(" )\n");
177
178 buffer.append(" .bubbleSeriesType = ")
179 .append("0x")
180 .append(HexDump.toHex((short)getBubbleSeriesType()))
181 .append(" (").append(getBubbleSeriesType()).append(" )\n");
182
183 buffer.append(" .numBubbleValues = ")
184 .append("0x")
185 .append(HexDump.toHex((short)getNumBubbleValues()))
186 .append(" (").append(getNumBubbleValues()).append(" )\n");
187
188 buffer.append("[/Series]\n");
189 return buffer.toString();
190 }
191
192 public int serialize(int offset, byte[] data)
193 {
194 LittleEndian.putShort(data, 0 + offset, sid);
195 LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
196
197 LittleEndian.putShort(data, 4 + offset, field_1_categoryDataType);
198 LittleEndian.putShort(data, 6 + offset, field_2_valuesDataType);
199 LittleEndian.putShort(data, 8 + offset, field_3_numCategories);
200 LittleEndian.putShort(data, 10 + offset, field_4_numValues);
201 LittleEndian.putShort(data, 12 + offset, field_5_bubbleSeriesType);
202 LittleEndian.putShort(data, 14 + offset, field_6_numBubbleValues);
203
204 return getRecordSize();
205 }
206
207
210 public int getRecordSize()
211 {
212 return 4 + 2 + 2 + 2 + 2 + 2 + 2;
213 }
214
215 public short getSid()
216 {
217 return this.sid;
218 }
219
220 public Object clone() {
221 SeriesRecord rec = new SeriesRecord();
222
223 rec.field_1_categoryDataType = field_1_categoryDataType;
224 rec.field_2_valuesDataType = field_2_valuesDataType;
225 rec.field_3_numCategories = field_3_numCategories;
226 rec.field_4_numValues = field_4_numValues;
227 rec.field_5_bubbleSeriesType = field_5_bubbleSeriesType;
228 rec.field_6_numBubbleValues = field_6_numBubbleValues;
229
230 return rec;
231 }
232
233
234
243 public short getCategoryDataType()
244 {
245 return field_1_categoryDataType;
246 }
247
248
258 public void setCategoryDataType(short field_1_categoryDataType)
259 {
260 this.field_1_categoryDataType = field_1_categoryDataType;
261 }
262
263
272 public short getValuesDataType()
273 {
274 return field_2_valuesDataType;
275 }
276
277
287 public void setValuesDataType(short field_2_valuesDataType)
288 {
289 this.field_2_valuesDataType = field_2_valuesDataType;
290 }
291
292
295 public short getNumCategories()
296 {
297 return field_3_numCategories;
298 }
299
300
303 public void setNumCategories(short field_3_numCategories)
304 {
305 this.field_3_numCategories = field_3_numCategories;
306 }
307
308
311 public short getNumValues()
312 {
313 return field_4_numValues;
314 }
315
316
319 public void setNumValues(short field_4_numValues)
320 {
321 this.field_4_numValues = field_4_numValues;
322 }
323
324
333 public short getBubbleSeriesType()
334 {
335 return field_5_bubbleSeriesType;
336 }
337
338
348 public void setBubbleSeriesType(short field_5_bubbleSeriesType)
349 {
350 this.field_5_bubbleSeriesType = field_5_bubbleSeriesType;
351 }
352
353
356 public short getNumBubbleValues()
357 {
358 return field_6_numBubbleValues;
359 }
360
361
364 public void setNumBubbleValues(short field_6_numBubbleValues)
365 {
366 this.field_6_numBubbleValues = field_6_numBubbleValues;
367 }
368
369
370 }
371
372
373
374
375