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   * BoolPtg.java
114  
115   *
116  
117   * Created on Septemeber 26, 2002, 7:37 PM
118  
119   */
120  
121  package org.apache.poi.hssf.record.formula;
122  
123  
124  
125  import org.apache.poi.util.LittleEndian;
126  
127  import org.apache.poi.hssf.util.SheetReferences;
128  
129  
130  
131  /**
132  
133   * Boolean (boolean)
134  
135   * Stores a (java) boolean value in a formula.
136  
137   * @author Paul Krause (pkrause at soundbite dot com)
138  
139   * @author Andrew C. Oliver (acoliver at apache dot org)
140  
141   * @author Jason Height (jheight at chariot dot net dot au)
142  
143   */
144  
145  
146  
147  public class BoolPtg
148  
149      extends Ptg
150  
151  {
152  
153      public final static int  SIZE = 2;
154  
155      public final static byte sid  = 0x1d;
156  
157      private boolean          field_1_value;
158  
159  
160  
161      private String val;
162  
163  
164  
165      private BoolPtg() {
166  
167        //Required for clone methods
168  
169      }
170  
171  
172  
173      public BoolPtg(byte [] data, int offset)
174  
175      {
176  
177          field_1_value = (data[offset + 1] == 1);
178  
179      }
180  
181  
182  
183  
184  
185      public BoolPtg(String formulaToken) {
186  
187          field_1_value = (formulaToken.equals("TRUE"));
188  
189      }
190  
191  
192  
193      public void setValue(boolean value)
194  
195      {
196  
197          field_1_value = value;
198  
199      }
200  
201  
202  
203      public boolean getValue()
204  
205      {
206  
207          return field_1_value;
208  
209      }
210  
211  
212  
213      public void writeBytes(byte [] array, int offset)
214  
215      {
216  
217          array[ offset + 0 ] = sid;
218  
219          array[ offset + 1 ] = (byte) (field_1_value ? 1 : 0);
220  
221      }
222  
223  
224  
225      public int getSize()
226  
227      {
228  
229          return SIZE;
230  
231      }
232  
233  
234  
235      public String toFormulaString(SheetReferences refs)
236  
237      {
238  
239          return field_1_value ? "TRUE" : "FALSE";
240  
241      }
242  
243  
244  
245      public byte getDefaultOperandClass() {return Ptg.CLASS_VALUE;}
246  
247  
248  
249      public Object clone() {
250  
251          BoolPtg ptg = new BoolPtg();
252  
253          ptg.field_1_value = field_1_value;
254  
255          return ptg;
256  
257      }
258  
259  }
260  
261  ￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿BoolPtg￿￿￿￿￿￿￿￿￿￿￿￿￿Ptg￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿SIZE￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿sid￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿field_1_value￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿val￿￿￿￿￿￿￿￿￿￿￿￿￿BoolPtg￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿BoolPtg￿￿￿￿￿￿￿￿￿field_1_value￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿data￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿offset￿￿￿￿￿￿￿￿￿￿￿￿BoolPtg￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿formulaToken￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿setValue￿￿￿￿￿￿￿￿￿field_1_value￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿value￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿getValue￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿field_1_value￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿writeBytes￿￿￿￿￿￿￿￿￿array￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿offset￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿sid￿￿￿￿￿￿￿￿￿array￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿offset￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿field_1_value￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿getSize￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿SIZE￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿toFormulaString￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿SheetReferences￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿field_1_value￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿getDefaultOperandClass￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿Ptg￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿CLASS_VALUE￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿clone￿￿￿￿￿￿￿￿￿BoolPtg￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿BoolPtg￿￿￿￿￿￿￿￿￿ptg￿￿￿￿￿￿￿￿￿￿￿￿￿field_1_value￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿field_1_value￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿ptg