1 package org.apache.poi.hssf.record.formula;
2 import org.apache.poi.util.LittleEndian;
3 public class FuncVarPtg extends AbstractFunctionPtg{
4
5 public final static byte sid = 0x22;
6
7
10 public FuncVarPtg(byte[] data, int offset) {
11 offset++;
12 field_1_num_args = data[ offset + 0 ];
13 field_2_fnc_index = LittleEndian.getShort(data,offset + 1 );
14 }
15
16
19 protected FuncVarPtg(String pName, byte pNumOperands) {
20 field_1_num_args = pNumOperands;
21 field_2_fnc_index = lookupIndex(pName);
22 try{
23 returnClass = ( (Byte) functionData[field_2_fnc_index][0]).byteValue();
24 paramClass = (byte[]) functionData[field_2_fnc_index][1];
25 } catch (NullPointerException npe ) {
26 returnClass = Ptg.CLASS_VALUE;
27 paramClass = new byte[] {Ptg.CLASS_VALUE};
28 }
29 }
30
31 public void writeBytes(byte[] array, int offset) {
32 array[offset+0]=(byte) (sid + ptgClass);
33 array[offset+1]=field_1_num_args;
34 LittleEndian.putShort(array,offset+2,field_2_fnc_index);
35 }
36
37 public int getNumberOfOperands() {
38 return field_1_num_args;
39 }
40
41
42 }
43