1 /
55
56
57 package org.apache.poi.hssf.record;
58
59
60
61 import org.apache.poi.util.*;
62
63
70 public class FontBasisRecord
71 extends Record
72 {
73 public final static short sid = 0x1060;
74 private short field_1_xBasis;
75 private short field_2_yBasis;
76 private short field_3_heightBasis;
77 private short field_4_scale;
78 private short field_5_indexToFontTable;
79
80
81 public FontBasisRecord()
82 {
83
84 }
85
86
94
95 public FontBasisRecord(short id, short size, byte [] data)
96 {
97 super(id, size, data);
98
99 }
100
101
110
111 public FontBasisRecord(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 FontBasis record");
127 }
128 }
129
130 protected void fillFields(byte [] data, short size, int offset)
131 {
132
133 int pos = 0;
134 field_1_xBasis = LittleEndian.getShort(data, pos + 0x0 + offset);
135 field_2_yBasis = LittleEndian.getShort(data, pos + 0x2 + offset);
136 field_3_heightBasis = LittleEndian.getShort(data, pos + 0x4 + offset);
137 field_4_scale = LittleEndian.getShort(data, pos + 0x6 + offset);
138 field_5_indexToFontTable = LittleEndian.getShort(data, pos + 0x8 + offset);
139
140 }
141
142 public String toString()
143 {
144 StringBuffer buffer = new StringBuffer();
145
146 buffer.append("[FBI]\n");
147 buffer.append(" .xBasis = ")
148 .append("0x").append(HexDump.toHex( getXBasis ()))
149 .append(" (").append( getXBasis() ).append(" )");
150 buffer.append(System.getProperty("line.separator"));
151 buffer.append(" .yBasis = ")
152 .append("0x").append(HexDump.toHex( getYBasis ()))
153 .append(" (").append( getYBasis() ).append(" )");
154 buffer.append(System.getProperty("line.separator"));
155 buffer.append(" .heightBasis = ")
156 .append("0x").append(HexDump.toHex( getHeightBasis ()))
157 .append(" (").append( getHeightBasis() ).append(" )");
158 buffer.append(System.getProperty("line.separator"));
159 buffer.append(" .scale = ")
160 .append("0x").append(HexDump.toHex( getScale ()))
161 .append(" (").append( getScale() ).append(" )");
162 buffer.append(System.getProperty("line.separator"));
163 buffer.append(" .indexToFontTable = ")
164 .append("0x").append(HexDump.toHex( getIndexToFontTable ()))
165 .append(" (").append( getIndexToFontTable() ).append(" )");
166 buffer.append(System.getProperty("line.separator"));
167
168 buffer.append("[/FBI]\n");
169 return buffer.toString();
170 }
171
172 public int serialize(int offset, byte[] data)
173 {
174 int pos = 0;
175
176 LittleEndian.putShort(data, 0 + offset, sid);
177 LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
178
179 LittleEndian.putShort(data, 4 + offset + pos, field_1_xBasis);
180 LittleEndian.putShort(data, 6 + offset + pos, field_2_yBasis);
181 LittleEndian.putShort(data, 8 + offset + pos, field_3_heightBasis);
182 LittleEndian.putShort(data, 10 + offset + pos, field_4_scale);
183 LittleEndian.putShort(data, 12 + offset + pos, field_5_indexToFontTable);
184
185 return getRecordSize();
186 }
187
188
191 public int getRecordSize()
192 {
193 return 4 + 2 + 2 + 2 + 2 + 2;
194 }
195
196 public short getSid()
197 {
198 return this.sid;
199 }
200
201 public Object clone() {
202 FontBasisRecord rec = new FontBasisRecord();
203
204 rec.field_1_xBasis = field_1_xBasis;
205 rec.field_2_yBasis = field_2_yBasis;
206 rec.field_3_heightBasis = field_3_heightBasis;
207 rec.field_4_scale = field_4_scale;
208 rec.field_5_indexToFontTable = field_5_indexToFontTable;
209 return rec;
210 }
211
212
213
214
215
218 public short getXBasis()
219 {
220 return field_1_xBasis;
221 }
222
223
226 public void setXBasis(short field_1_xBasis)
227 {
228 this.field_1_xBasis = field_1_xBasis;
229 }
230
231
234 public short getYBasis()
235 {
236 return field_2_yBasis;
237 }
238
239
242 public void setYBasis(short field_2_yBasis)
243 {
244 this.field_2_yBasis = field_2_yBasis;
245 }
246
247
250 public short getHeightBasis()
251 {
252 return field_3_heightBasis;
253 }
254
255
258 public void setHeightBasis(short field_3_heightBasis)
259 {
260 this.field_3_heightBasis = field_3_heightBasis;
261 }
262
263
266 public short getScale()
267 {
268 return field_4_scale;
269 }
270
271
274 public void setScale(short field_4_scale)
275 {
276 this.field_4_scale = field_4_scale;
277 }
278
279
282 public short getIndexToFontTable()
283 {
284 return field_5_indexToFontTable;
285 }
286
287
290 public void setIndexToFontTable(short field_5_indexToFontTable)
291 {
292 this.field_5_indexToFontTable = field_5_indexToFontTable;
293 }
294
295
296 }
297
298
299
300
301