1    
2    
3    /* ====================================================================
4    
5     * The Apache Software License, Version 1.1
6    
7     *
8    
9     * Copyright (c) 2002 The Apache Software Foundation.  All rights
10   
11    * reserved.
12   
13    *
14   
15    * Redistribution and use in source and binary forms, with or without
16   
17    * modification, are permitted provided that the following conditions
18   
19    * are met:
20   
21    *
22   
23    * 1. Redistributions of source code must retain the above copyright
24   
25    *    notice, this list of conditions and the following disclaimer.
26   
27    *
28   
29    * 2. Redistributions in binary form must reproduce the above copyright
30   
31    *    notice, this list of conditions and the following disclaimer in
32   
33    *    the documentation and/or other materials provided with the
34   
35    *    distribution.
36   
37    *
38   
39    * 3. The end-user documentation included with the redistribution,
40   
41    *    if any, must include the following acknowledgment:
42   
43    *       "This product includes software developed by the
44   
45    *        Apache Software Foundation (http://www.apache.org/)."
46   
47    *    Alternately, this acknowledgment may appear in the software itself,
48   
49    *    if and wherever such third-party acknowledgments normally appear.
50   
51    *
52   
53    * 4. The names "Apache" and "Apache Software Foundation" and
54   
55    *    "Apache POI" must not be used to endorse or promote products
56   
57    *    derived from this software without prior written permission. For
58   
59    *    written permission, please contact apache@apache.org.
60   
61    *
62   
63    * 5. Products derived from this software may not be called "Apache",
64   
65    *    "Apache POI", nor may "Apache" appear in their name, without
66   
67    *    prior written permission of the Apache Software Foundation.
68   
69    *
70   
71    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
72   
73    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
74   
75    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
76   
77    * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
78   
79    * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
80   
81    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
82   
83    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
84   
85    * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
86   
87    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
88   
89    * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
90   
91    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
92   
93    * SUCH DAMAGE.
94   
95    * ====================================================================
96   
97    *
98   
99    * This software consists of voluntary contributions made by many
100  
101   * individuals on behalf of the Apache Software Foundation.  For more
102  
103   * information on the Apache Software Foundation, please see
104  
105   * <http://www.apache.org/>.
106  
107   */
108  
109  
110  
111  
112  
113  package org.apache.poi.hssf.record;
114  
115  
116  
117  
118  
119  
120  
121  import org.apache.poi.util.*;
122  
123  
124  
125  /**
126  
127   * Record for the left margin.
128  
129   * NOTE: This source was automatically generated.
130  
131   * @author Shawn Laubach (slaubach at apache dot org)
132  
133   */
134  
135  public class LeftMarginRecord
136  
137      extends Record implements Margin
138  
139  {
140  
141      public final static short      sid                             = 0x26;
142  
143      private  double     field_1_margin;
144  
145  
146  
147  
148  
149      public LeftMarginRecord()
150  
151      {
152  
153  
154  
155      }
156  
157  
158  
159      /**
160  
161       * Constructs a LeftMargin record and sets its fields appropriately.
162  
163       *
164  
165       * @param id    id must be 0x26 or an exception
166  
167       *              will be throw upon validation
168  
169       * @param size  size the size of the data area of the record
170  
171       * @param data  data of the record (should not contain sid/len)
172  
173       */
174  
175  
176  
177      public LeftMarginRecord(short id, short size, byte [] data)
178  
179      {
180  
181          super(id, size, data);
182  
183      }
184  
185  
186  
187      /**
188  
189       * Constructs a LeftMargin record and sets its fields appropriately.
190  
191       *
192  
193       * @param id    id must be 0x26 or an exception
194  
195       *              will be throw upon validation
196  
197       * @param size  size the size of the data area of the record
198  
199       * @param data  data of the record (should not contain sid/len)
200  
201       * @param offset of the record's data
202  
203       */
204  
205  
206  
207      public LeftMarginRecord(short id, short size, byte [] data, int offset)
208  
209      {
210  
211          super(id, size, data, offset);
212  
213      }
214  
215  
216  
217      /**
218  
219       * Checks the sid matches the expected side for this record
220  
221       *
222  
223       * @param id   the expected sid.
224  
225       */
226  
227      protected void validateSid(short id)
228  
229      {
230  
231          if (id != sid)
232  
233          {
234  
235              throw new RecordFormatException("Not a LeftMargin record");
236  
237          }
238  
239      }
240  
241  
242  
243      protected void fillFields(byte [] data, short size, int offset)
244  
245      {
246  
247          field_1_margin                  = LittleEndian.getDouble(data, 0x0 + offset);
248  
249  
250  
251      }
252  
253  
254  
255      public String toString()
256  
257      {
258  
259          StringBuffer buffer = new StringBuffer();
260  
261  
262  
263          buffer.append("[LeftMargin]\n");
264  
265  
266  
267          buffer.append("    .margin               = ")
268  
269              .append(" (").append(getMargin()).append(" )\n");
270  
271  
272  
273          buffer.append("[/LeftMargin]\n");
274  
275          return buffer.toString();
276  
277      }
278  
279  
280  
281      public int serialize(int offset, byte[] data)
282  
283      {
284  
285          LittleEndian.putShort(data, 0 + offset, sid);
286  
287          LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
288  
289  
290  
291          LittleEndian.putDouble(data, 4 + offset, field_1_margin);
292  
293  
294  
295          return getRecordSize();
296  
297      }
298  
299  
300  
301      /**
302  
303       * Size of record (exluding 4 byte header)
304  
305       */
306  
307      public int getRecordSize()
308  
309      {
310  
311          return 4  + 8;
312  
313      }
314  
315  
316  
317      public short getSid()
318  
319      {
320  
321          return this.sid;
322  
323      }
324  
325  
326  
327  
328  
329      /**
330  
331       * Get the margin field for the LeftMargin record.
332  
333       */
334  
335      public double getMargin()
336  
337      {
338  
339          return field_1_margin;
340  
341      }
342  
343  
344  
345      /**
346  
347       * Set the margin field for the LeftMargin record.
348  
349       */
350  
351      public void setMargin(double field_1_margin)
352  
353      {
354  
355          this.field_1_margin = field_1_margin;
356  
357      }
358  
359  
360  
361  
362  
363  }  // END OF CLASS
364  
365  
366  
367  
368  
369  
370  
371  
372  
373  ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????LeftMarginRecord?????????????Record???????????????????????????????Margin????????????????????????????????????sid?????????????????????????field_1_margin????????????LeftMarginRecord??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????LeftMarginRecord???????????????id???????????????????size?????????????????????????data?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????LeftMarginRecord???????????????id???????????????????size?????????????????????????data???????????????????????????????offset????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????validateSid?????????????id???????????????????sid????????????????????fillFields?????????field_1_margin???????????????????????????????????????????LittleEndian????????????????????????????????????????????????????????getDouble??????????????????????????????????????????????????????????????????data??????????????????????????????????????????????????????????????????????????????offset???????????????????toString?????????buffer?????????buffer??????????????????????????????????getMargin?????????buffer????????????????buffer????????????????serialize?????????LittleEndian??????????????????????putShort???????????????????????????????data?????????????????????????????????????????offset?????????????????????????????????????????????????sid?????????LittleEndian??????????????????????putShort???????????????????????????????data?????????????????????????????????????????offset?????????????????????????????????????????????????????????getRecordSize?????????LittleEndian??????????????????????putDouble????????????????????????????????data??????????????????????????????????????????offset??????????????????????????????????????????????????field_1_margin????????????????getRecordSize?????????????????????????????????????????????????????????????????????????????????getRecordSize??????????????????getSid????????????????????????????????????????????????????????????????????????????????????????????getMargin????????????????field_1_margin??????????????????????????????????????????????????????????????????????????????????????????setMargin???????????????????????????????field_1_margin???????????????????