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