1 /
55
56
61 package org.apache.poi.hssf.record.formula;
62
63 import org.apache.poi.util.LittleEndian;
64 import org.apache.poi.util.BitField;
65
66
72
73 public class AttrPtg
74 extends Ptg
75 implements OperationPtg
76 {
77 public final static short sid = 0x19;
78 private final static int SIZE = 4;
79 private byte field_1_options;
80 private short field_2_data;
81 private BitField semiVolatile = new BitField(0x01);
82 private BitField optiIf = new BitField(0x02);
83 private BitField optiChoose = new BitField(0x04);
84 private BitField optGoto = new BitField(0x08);
85 private BitField sum = new BitField(0x10);
86 private BitField baxcel = new BitField(0x20);
87 private BitField space = new BitField(0x40);
88
89
90
91 public AttrPtg()
92 {
93 }
94
95 public AttrPtg(byte [] data, int offset)
96 {
97 offset++;
98 field_1_options = data[ offset + 0 ];
99 field_2_data = LittleEndian.getShort(data, offset + 1);
100 System.out.println("OPTIONS = " + Integer.toHexString(getOptions()));
101 System.out.println("OPTIONS & 0x10 = " + (getOptions() & 0x10));
102 System.out.println(toString());
103 }
104
105 public void setOptions(byte options)
106 {
107 field_1_options = options;
108 }
109
110 public byte getOptions()
111 {
112 return field_1_options;
113 }
114
115 public boolean isSemiVolatile()
116 {
117 return semiVolatile.isSet(getOptions());
118 }
119
120 public boolean isOptimizedIf()
121 {
122 return optiIf.isSet(getOptions());
123 }
124
125 public boolean isOptimizedChoose()
126 {
127 return optiChoose.isSet(getOptions());
128 }
129
130
131 public boolean isGoto()
132 {
133 return optGoto.isSet(getOptions());
134 }
135
136 public boolean isSum()
137 {
138 return sum.isSet(getOptions());
139 }
140
141
142 public boolean isBaxcel()
143 {
144 return baxcel.isSet(getOptions());
145 }
146
147
148 public boolean isSpace()
149 {
150 return space.isSet(getOptions());
151 }
152
153 public void setData(short data)
154 {
155 field_2_data = data;
156 }
157
158 public short getData()
159 {
160 return field_2_data;
161 }
162
163 public String toString()
164 {
165 StringBuffer buffer = new StringBuffer();
166
167 buffer.append("AttrPtg\n");
168 buffer.append("options=").append(field_1_options).append("\n");
169 buffer.append("data =").append(field_2_data).append("\n");
170 buffer.append("semi =").append(isSemiVolatile()).append("\n");
171 buffer.append("optimif=").append(isOptimizedIf()).append("\n");
172 buffer.append("optchos=").append(isOptimizedChoose()).append("\n");
173 buffer.append("isGoto =").append(isGoto()).append("\n");
174 buffer.append("isSum =").append(isSum()).append("\n");
175 buffer.append("isBaxce=").append(isBaxcel()).append("\n");
176 buffer.append("isSpace=").append(isSpace()).append("\n");
177 return buffer.toString();
178 }
179
180 public void writeBytes(byte [] array, int offset)
181 {
182 }
183
184 public int getSize()
185 {
186 return SIZE;
187 }
188
189 public String toFormulaString()
190 {
191 return "SUM()";
192 }
193
194 public String toFormulaString(Ptg [] operands)
195 {
196 return "SUM(" + operands[ 0 ].toFormulaString() + ")";
197 }
198
199 public int getNumberOfOperands()
200 {
201 return 1;
202 }
203
204 public int getType()
205 {
206 return -1;
207 }
208 }
209