1 /
55
56
57 package org.apache.poi.hssf.record;
58
59
60
61 import org.apache.poi.util.*;
62
63
70 public class DataFormatRecord
71 extends Record
72 {
73 public final static short sid = 0x1006;
74 private short field_1_pointNumber;
75 private short field_2_seriesIndex;
76 private short field_3_seriesNumber;
77 private short field_4_formatFlags;
78 private BitField useExcel4Colors = new BitField(0x1);
79
80
81 public DataFormatRecord()
82 {
83
84 }
85
86
94
95 public DataFormatRecord(short id, short size, byte [] data)
96 {
97 super(id, size, data);
98
99 }
100
101
110
111 public DataFormatRecord(short id, short size, byte [] data, int offset)
112 {
113 super(id, size, data, offset);
114
115 }
116
117
122 protected void validateSid(short id)
123 {
124 if (id != sid)
125 {
126 throw new RecordFormatException("Not a DataFormat record");
127 }
128 }
129
130 protected void fillFields(byte [] data, short size, int offset)
131 {
132
133 int pos = 0;
134 field_1_pointNumber = LittleEndian.getShort(data, pos + 0x0 + offset);
135 field_2_seriesIndex = LittleEndian.getShort(data, pos + 0x2 + offset);
136 field_3_seriesNumber = LittleEndian.getShort(data, pos + 0x4 + offset);
137 field_4_formatFlags = LittleEndian.getShort(data, pos + 0x6 + offset);
138
139 }
140
141 public String toString()
142 {
143 StringBuffer buffer = new StringBuffer();
144
145 buffer.append("[DATAFORMAT]\n");
146 buffer.append(" .pointNumber = ")
147 .append("0x").append(HexDump.toHex( getPointNumber ()))
148 .append(" (").append( getPointNumber() ).append(" )");
149 buffer.append(System.getProperty("line.separator"));
150 buffer.append(" .seriesIndex = ")
151 .append("0x").append(HexDump.toHex( getSeriesIndex ()))
152 .append(" (").append( getSeriesIndex() ).append(" )");
153 buffer.append(System.getProperty("line.separator"));
154 buffer.append(" .seriesNumber = ")
155 .append("0x").append(HexDump.toHex( getSeriesNumber ()))
156 .append(" (").append( getSeriesNumber() ).append(" )");
157 buffer.append(System.getProperty("line.separator"));
158 buffer.append(" .formatFlags = ")
159 .append("0x").append(HexDump.toHex( getFormatFlags ()))
160 .append(" (").append( getFormatFlags() ).append(" )");
161 buffer.append(System.getProperty("line.separator"));
162 buffer.append(" .useExcel4Colors = ").append(isUseExcel4Colors()).append('\n');
163
164 buffer.append("[/DATAFORMAT]\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_pointNumber);
176 LittleEndian.putShort(data, 6 + offset + pos, field_2_seriesIndex);
177 LittleEndian.putShort(data, 8 + offset + pos, field_3_seriesNumber);
178 LittleEndian.putShort(data, 10 + offset + pos, field_4_formatFlags);
179
180 return getRecordSize();
181 }
182
183
186 public int getRecordSize()
187 {
188 return 4 + 2 + 2 + 2 + 2;
189 }
190
191 public short getSid()
192 {
193 return this.sid;
194 }
195
196 public Object clone() {
197 DataFormatRecord rec = new DataFormatRecord();
198
199 rec.field_1_pointNumber = field_1_pointNumber;
200 rec.field_2_seriesIndex = field_2_seriesIndex;
201 rec.field_3_seriesNumber = field_3_seriesNumber;
202 rec.field_4_formatFlags = field_4_formatFlags;
203 return rec;
204 }
205
206
207
208
209
212 public short getPointNumber()
213 {
214 return field_1_pointNumber;
215 }
216
217
220 public void setPointNumber(short field_1_pointNumber)
221 {
222 this.field_1_pointNumber = field_1_pointNumber;
223 }
224
225
228 public short getSeriesIndex()
229 {
230 return field_2_seriesIndex;
231 }
232
233
236 public void setSeriesIndex(short field_2_seriesIndex)
237 {
238 this.field_2_seriesIndex = field_2_seriesIndex;
239 }
240
241
244 public short getSeriesNumber()
245 {
246 return field_3_seriesNumber;
247 }
248
249
252 public void setSeriesNumber(short field_3_seriesNumber)
253 {
254 this.field_3_seriesNumber = field_3_seriesNumber;
255 }
256
257
260 public short getFormatFlags()
261 {
262 return field_4_formatFlags;
263 }
264
265
268 public void setFormatFlags(short field_4_formatFlags)
269 {
270 this.field_4_formatFlags = field_4_formatFlags;
271 }
272
273
277 public void setUseExcel4Colors(boolean value)
278 {
279 field_4_formatFlags = useExcel4Colors.setShortBoolean(field_4_formatFlags, value);
280 }
281
282
286 public boolean isUseExcel4Colors()
287 {
288 return useExcel4Colors.isSet(field_4_formatFlags);
289 }
290
291
292 }
293
294
295
296
297