Added
Link Here
|
1 |
/* |
2 |
* Created on May 8, 2005 |
3 |
* |
4 |
*/ |
5 |
package org.apache.poi.hssf.record.formula.eval; |
6 |
|
7 |
import org.apache.poi.hssf.record.formula.functions.*; |
8 |
|
9 |
/** |
10 |
* @author Amol S. Deshmukh < amolweb at ya hoo dot com > |
11 |
* |
12 |
*/ |
13 |
public abstract class FunctionEval implements OperationEval { |
14 |
protected static Function[] functions = produceFunctions(); |
15 |
public Function getFunction() { |
16 |
short fidx = getFunctionIndex(); |
17 |
return functions[fidx]; |
18 |
} |
19 |
public abstract short getFunctionIndex(); |
20 |
|
21 |
private static Function[] produceFunctions() { |
22 |
Function[] retval = new Function[368]; |
23 |
retval[0] = new Count(); // COUNT |
24 |
retval[1] = null; // specialflag |
25 |
retval[2] = new IsNa(); // ISNA |
26 |
retval[3] = new IsError(); // ISERROR |
27 |
retval[4] = new Sum(); // SUM |
28 |
retval[5] = new Average(); // AVERAGE |
29 |
retval[6] = new Min(); // MIN |
30 |
retval[7] = new Max(); // MAX |
31 |
retval[8] = new Row(); // ROW |
32 |
retval[9] = new Column(); // COLUMN |
33 |
retval[10] = new Na(); // NA |
34 |
retval[11] = new Npv(); // NPV |
35 |
retval[12] = new Stdev(); // STDEV |
36 |
retval[13] = new Dollar(); // DOLLAR |
37 |
retval[14] = new Fixed(); // FIXED |
38 |
retval[15] = new Sin(); // SIN |
39 |
retval[16] = new Cos(); // COS |
40 |
retval[17] = new Tan(); // TAN |
41 |
retval[18] = new Atan(); // ATAN |
42 |
retval[19] = new Pi(); // PI |
43 |
retval[20] = new Sqrt(); // SQRT |
44 |
retval[21] = new Exp(); // EXP |
45 |
retval[22] = new Ln(); // LN |
46 |
retval[23] = new Log10(); // LOG10 |
47 |
retval[24] = new Abs(); // ABS |
48 |
retval[25] = new Int(); // INT |
49 |
retval[26] = new Sign(); // SIGN |
50 |
retval[27] = new Round(); // ROUND |
51 |
retval[28] = new Lookup(); // LOOKUP |
52 |
retval[29] = new Index(); // INDEX |
53 |
retval[30] = new Rept(); // REPT |
54 |
retval[31] = new Mid(); // MID |
55 |
retval[32] = new Len(); // LEN |
56 |
retval[33] = new Value(); // VALUE |
57 |
retval[34] = new True(); // TRUE |
58 |
retval[35] = new False(); // FALSE |
59 |
retval[36] = new And(); // AND |
60 |
retval[37] = new Or(); // OR |
61 |
retval[38] = new Not(); // NOT |
62 |
retval[39] = new Mod(); // MOD |
63 |
retval[40] = new Dcount(); // DCOUNT |
64 |
retval[41] = new Dsum(); // DSUM |
65 |
retval[42] = new Daverage(); // DAVERAGE |
66 |
retval[43] = new Dmin(); // DMIN |
67 |
retval[44] = new Dmax(); // DMAX |
68 |
retval[45] = new Dstdev(); // DSTDEV |
69 |
retval[46] = new Var(); // VAR |
70 |
retval[47] = new Dvar(); // DVAR |
71 |
retval[48] = new Text(); // TEXT |
72 |
retval[49] = new Linest(); // LINEST |
73 |
retval[50] = new Trend(); // TREND |
74 |
retval[51] = new Logest(); // LOGEST |
75 |
retval[52] = new Growth(); // GROWTH |
76 |
retval[53] = new Goto(); // GOTO |
77 |
retval[54] = new Halt(); // HALT |
78 |
retval[55] = new Pv(); // PV |
79 |
retval[56] = new Fv(); // FV |
80 |
retval[57] = new Nper(); // NPER |
81 |
retval[58] = new Pmt(); // PMT |
82 |
retval[59] = new Rate(); // RATE |
83 |
retval[60] = new Mirr(); // MIRR |
84 |
retval[61] = new Irr(); // IRR |
85 |
retval[62] = new Rand(); // RAND |
86 |
retval[63] = new Match(); // MATCH |
87 |
retval[64] = new Date(); // DATE |
88 |
retval[65] = new Time(); // TIME |
89 |
retval[66] = new Day(); // DAY |
90 |
retval[67] = new Month(); // MONTH |
91 |
retval[68] = new Year(); // YEAR |
92 |
retval[69] = new Weekday(); // WEEKDAY |
93 |
retval[70] = new Hour(); // HOUR |
94 |
retval[71] = new Minute(); // MINUTE |
95 |
retval[72] = new Second(); // SECOND |
96 |
retval[73] = new Now(); // NOW |
97 |
retval[74] = new Areas(); // AREAS |
98 |
retval[75] = new Rows(); // ROWS |
99 |
retval[76] = new Columns(); // COLUMNS |
100 |
retval[77] = new Offset(); // OFFSET |
101 |
retval[78] = new Absref(); // ABSREF |
102 |
retval[79] = new Relref(); // RELREF |
103 |
retval[80] = new Argument(); // ARGUMENT |
104 |
retval[81] = new Search(); // SEARCH |
105 |
retval[82] = new Transpose(); // TRANSPOSE |
106 |
retval[83] = new org.apache.poi.hssf.record.formula.functions.Error(); // ERROR |
107 |
retval[84] = new Step(); // STEP |
108 |
retval[85] = new Type(); // TYPE |
109 |
retval[86] = new Echo(); // ECHO |
110 |
retval[87] = new Setname(); // SETNAME |
111 |
retval[88] = new Caller(); // CALLER |
112 |
retval[89] = new Deref(); // DEREF |
113 |
retval[90] = new Windows(); // WINDOWS |
114 |
retval[91] = new Series(); // SERIES |
115 |
retval[92] = new Documents(); // DOCUMENTS |
116 |
retval[93] = new Activecell(); // ACTIVECELL |
117 |
retval[94] = new Selection(); // SELECTION |
118 |
retval[95] = new Result(); // RESULT |
119 |
retval[96] = new Atan2(); // ATAN2 |
120 |
retval[97] = new Asin(); // ASIN |
121 |
retval[98] = new Acos(); // ACOS |
122 |
retval[99] = new Choose(); // CHOOSE |
123 |
retval[100] = new Hlookup(); // HLOOKUP |
124 |
retval[101] = new Vlookup(); // VLOOKUP |
125 |
retval[102] = new Links(); // LINKS |
126 |
retval[103] = new Input(); // INPUT |
127 |
retval[104] = new Isref(); // ISREF |
128 |
retval[105] = new Getformula(); // GETFORMULA |
129 |
retval[106] = new Getname(); // GETNAME |
130 |
retval[107] = new Setvalue(); // SETVALUE |
131 |
retval[108] = new Log(); // LOG |
132 |
retval[109] = new Exec(); // EXEC |
133 |
retval[110] = new Char(); // CHAR |
134 |
retval[111] = new Lower(); // LOWER |
135 |
retval[112] = new Upper(); // UPPER |
136 |
retval[113] = new Proper(); // PROPER |
137 |
retval[114] = new Left(); // LEFT |
138 |
retval[115] = new Right(); // RIGHT |
139 |
retval[116] = new Exact(); // EXACT |
140 |
retval[117] = new Trim(); // TRIM |
141 |
retval[118] = new Replace(); // REPLACE |
142 |
retval[119] = new Substitute(); // SUBSTITUTE |
143 |
retval[120] = new Code(); // CODE |
144 |
retval[121] = new Names(); // NAMES |
145 |
retval[122] = new Directory(); // DIRECTORY |
146 |
retval[123] = new Find(); // FIND |
147 |
retval[124] = new Cell(); // CELL |
148 |
retval[125] = new Iserr(); // ISERR |
149 |
retval[126] = new Istext(); // ISTEXT |
150 |
retval[127] = new Isnumber(); // ISNUMBER |
151 |
retval[128] = new Isblank(); // ISBLANK |
152 |
retval[129] = new T(); // T |
153 |
retval[130] = new N(); // N |
154 |
retval[131] = new Fopen(); // FOPEN |
155 |
retval[132] = new Fclose(); // FCLOSE |
156 |
retval[133] = new Fsize(); // FSIZE |
157 |
retval[134] = new Freadln(); // FREADLN |
158 |
retval[135] = new Fread(); // FREAD |
159 |
retval[136] = new Fwriteln(); // FWRITELN |
160 |
retval[137] = new Fwrite(); // FWRITE |
161 |
retval[138] = new Fpos(); // FPOS |
162 |
retval[139] = new Datevalue(); // DATEVALUE |
163 |
retval[140] = new Timevalue(); // TIMEVALUE |
164 |
retval[141] = new Sln(); // SLN |
165 |
retval[142] = new Syd(); // SYD |
166 |
retval[143] = new Ddb(); // DDB |
167 |
retval[144] = new Getdef(); // GETDEF |
168 |
retval[145] = new Reftext(); // REFTEXT |
169 |
retval[146] = new Textref(); // TEXTREF |
170 |
retval[147] = new Indirect(); // INDIRECT |
171 |
retval[148] = new Register(); // REGISTER |
172 |
retval[149] = new Call(); // CALL |
173 |
retval[150] = new Addbar(); // ADDBAR |
174 |
retval[151] = new Addmenu(); // ADDMENU |
175 |
retval[152] = new Addcommand(); // ADDCOMMAND |
176 |
retval[153] = new Enablecommand(); // ENABLECOMMAND |
177 |
retval[154] = new Checkcommand(); // CHECKCOMMAND |
178 |
retval[155] = new Renamecommand(); // RENAMECOMMAND |
179 |
retval[156] = new Showbar(); // SHOWBAR |
180 |
retval[157] = new Deletemenu(); // DELETEMENU |
181 |
retval[158] = new Deletecommand(); // DELETECOMMAND |
182 |
retval[159] = new Getchartitem(); // GETCHARTITEM |
183 |
retval[160] = new Dialogbox(); // DIALOGBOX |
184 |
retval[161] = new Clean(); // CLEAN |
185 |
retval[162] = new Mdeterm(); // MDETERM |
186 |
retval[163] = new Minverse(); // MINVERSE |
187 |
retval[164] = new Mmult(); // MMULT |
188 |
retval[165] = new Files(); // FILES |
189 |
retval[166] = new Ipmt(); // IPMT |
190 |
retval[167] = new Ppmt(); // PPMT |
191 |
retval[168] = new Counta(); // COUNTA |
192 |
retval[169] = new Cancelkey(); // CANCELKEY |
193 |
retval[170] = new Initiate(); // INITIATE |
194 |
retval[171] = new Request(); // REQUEST |
195 |
retval[172] = new Poke(); // POKE |
196 |
retval[173] = new Execute(); // EXECUTE |
197 |
retval[174] = new Terminate(); // TERMINATE |
198 |
retval[175] = new Restart(); // RESTART |
199 |
retval[176] = new Help(); // HELP |
200 |
retval[177] = new Getbar(); // GETBAR |
201 |
retval[178] = new Product(); // PRODUCT |
202 |
retval[179] = new Fact(); // FACT |
203 |
retval[180] = new Getcell(); // GETCELL |
204 |
retval[181] = new Getworkspace(); // GETWORKSPACE |
205 |
retval[182] = new Getwindow(); // GETWINDOW |
206 |
retval[183] = new Getdocument(); // GETDOCUMENT |
207 |
retval[184] = new Dproduct(); // DPRODUCT |
208 |
retval[185] = new Isnontext(); // ISNONTEXT |
209 |
retval[186] = new Getnote(); // GETNOTE |
210 |
retval[187] = new Note(); // NOTE |
211 |
retval[188] = new Stdevp(); // STDEVP |
212 |
retval[189] = new Varp(); // VARP |
213 |
retval[190] = new Dstdevp(); // DSTDEVP |
214 |
retval[191] = new Dvarp(); // DVARP |
215 |
retval[192] = new Trunc(); // TRUNC |
216 |
retval[193] = new Islogical(); // ISLOGICAL |
217 |
retval[194] = new Dcounta(); // DCOUNTA |
218 |
retval[195] = new Deletebar(); // DELETEBAR |
219 |
retval[196] = new Unregister(); // UNREGISTER |
220 |
retval[197] = new Usdollar(); // USDOLLAR |
221 |
retval[198] = new Findb(); // FINDB |
222 |
retval[199] = new Searchb(); // SEARCHB |
223 |
retval[200] = new Replaceb(); // REPLACEB |
224 |
retval[201] = new Leftb(); // LEFTB |
225 |
retval[202] = new Rightb(); // RIGHTB |
226 |
retval[203] = new Midb(); // MIDB |
227 |
retval[204] = new Lenb(); // LENB |
228 |
retval[205] = new Roundup(); // ROUNDUP |
229 |
retval[206] = new Rounddown(); // ROUNDDOWN |
230 |
retval[207] = new Asc(); // ASC |
231 |
retval[208] = new Dbcs(); // DBCS |
232 |
retval[209] = new Rank(); // RANK |
233 |
retval[210] = new Address(); // ADDRESS |
234 |
retval[211] = new Days360(); // DAYS360 |
235 |
retval[212] = new Today(); // TODAY |
236 |
retval[213] = new Vdb(); // VDB |
237 |
retval[214] = new Median(); // MEDIAN |
238 |
retval[215] = new Sumproduct(); // SUMPRODUCT |
239 |
retval[216] = new Sinh(); // SINH |
240 |
retval[217] = new Cosh(); // COSH |
241 |
retval[218] = new Tanh(); // TANH |
242 |
retval[219] = new Asinh(); // ASINH |
243 |
retval[220] = new Acosh(); // ACOSH |
244 |
retval[221] = new Atanh(); // ATANH |
245 |
retval[222] = new Dget(); // DGET |
246 |
retval[223] = new Createobject(); // CREATEOBJECT |
247 |
retval[224] = new Volatile(); // VOLATILE |
248 |
retval[225] = new Lasterror(); // LASTERROR |
249 |
retval[226] = new Customundo(); // CUSTOMUNDO |
250 |
retval[227] = new Customrepeat(); // CUSTOMREPEAT |
251 |
retval[228] = new Formulaconvert(); // FORMULACONVERT |
252 |
retval[229] = new Getlinkinfo(); // GETLINKINFO |
253 |
retval[230] = new Textbox(); // TEXTBOX |
254 |
retval[231] = new Info(); // INFO |
255 |
retval[232] = new Group(); // GROUP |
256 |
retval[233] = new Getobject(); // GETOBJECT |
257 |
retval[234] = new Db(); // DB |
258 |
retval[235] = new Pause(); // PAUSE |
259 |
retval[236] = new Resume(); // RESUME |
260 |
retval[237] = new Frequency(); // FREQUENCY |
261 |
retval[238] = new Addtoolbar(); // ADDTOOLBAR |
262 |
retval[239] = new Deletetoolbar(); // DELETETOOLBAR |
263 |
retval[240] = new Externalflag(); // externalflag |
264 |
retval[241] = new Resettoolbar(); // RESETTOOLBAR |
265 |
retval[242] = new Evaluate(); // EVALUATE |
266 |
retval[243] = new Gettoolbar(); // GETTOOLBAR |
267 |
retval[244] = new Gettool(); // GETTOOL |
268 |
retval[245] = new Spellingcheck(); // SPELLINGCHECK |
269 |
retval[246] = new Errortype(); // ERRORTYPE |
270 |
retval[247] = new Apptitle(); // APPTITLE |
271 |
retval[248] = new Windowtitle(); // WINDOWTITLE |
272 |
retval[249] = new Savetoolbar(); // SAVETOOLBAR |
273 |
retval[250] = new Enabletool(); // ENABLETOOL |
274 |
retval[251] = new Presstool(); // PRESSTOOL |
275 |
retval[252] = new Registerid(); // REGISTERID |
276 |
retval[253] = new Getworkbook(); // GETWORKBOOK |
277 |
retval[254] = new Avedev(); // AVEDEV |
278 |
retval[255] = new Betadist(); // BETADIST |
279 |
retval[256] = new Gammaln(); // GAMMALN |
280 |
retval[257] = new Betainv(); // BETAINV |
281 |
retval[258] = new Binomdist(); // BINOMDIST |
282 |
retval[259] = new Chidist(); // CHIDIST |
283 |
retval[260] = new Chiinv(); // CHIINV |
284 |
retval[261] = new Combin(); // COMBIN |
285 |
retval[262] = new Confidence(); // CONFIDENCE |
286 |
retval[263] = new Critbinom(); // CRITBINOM |
287 |
retval[264] = new Even(); // EVEN |
288 |
retval[265] = new Expondist(); // EXPONDIST |
289 |
retval[266] = new Fdist(); // FDIST |
290 |
retval[267] = new Finv(); // FINV |
291 |
retval[268] = new Fisher(); // FISHER |
292 |
retval[269] = new Fisherinv(); // FISHERINV |
293 |
retval[270] = new Floor(); // FLOOR |
294 |
retval[271] = new Gammadist(); // GAMMADIST |
295 |
retval[272] = new Gammainv(); // GAMMAINV |
296 |
retval[273] = new Ceiling(); // CEILING |
297 |
retval[274] = new Hypgeomdist(); // HYPGEOMDIST |
298 |
retval[275] = new Lognormdist(); // LOGNORMDIST |
299 |
retval[276] = new Loginv(); // LOGINV |
300 |
retval[277] = new Negbinomdist(); // NEGBINOMDIST |
301 |
retval[278] = new Normdist(); // NORMDIST |
302 |
retval[279] = new Normsdist(); // NORMSDIST |
303 |
retval[280] = new Norminv(); // NORMINV |
304 |
retval[281] = new Normsinv(); // NORMSINV |
305 |
retval[282] = new Standardize(); // STANDARDIZE |
306 |
retval[283] = new Odd(); // ODD |
307 |
retval[284] = new Permut(); // PERMUT |
308 |
retval[285] = new Poisson(); // POISSON |
309 |
retval[286] = new Tdist(); // TDIST |
310 |
retval[287] = new Weibull(); // WEIBULL |
311 |
retval[288] = new Sumxmy2(); // SUMXMY2 |
312 |
retval[289] = new Sumx2my2(); // SUMX2MY2 |
313 |
retval[290] = new Sumx2py2(); // SUMX2PY2 |
314 |
retval[291] = new Chitest(); // CHITEST |
315 |
retval[292] = new Correl(); // CORREL |
316 |
retval[293] = new Covar(); // COVAR |
317 |
retval[294] = new Forecast(); // FORECAST |
318 |
retval[295] = new Ftest(); // FTEST |
319 |
retval[296] = new Intercept(); // INTERCEPT |
320 |
retval[297] = new Pearson(); // PEARSON |
321 |
retval[298] = new Rsq(); // RSQ |
322 |
retval[299] = new Steyx(); // STEYX |
323 |
retval[300] = new Slope(); // SLOPE |
324 |
retval[301] = new Ttest(); // TTEST |
325 |
retval[302] = new Prob(); // PROB |
326 |
retval[303] = new Devsq(); // DEVSQ |
327 |
retval[304] = new Geomean(); // GEOMEAN |
328 |
retval[305] = new Harmean(); // HARMEAN |
329 |
retval[306] = new Sumsq(); // SUMSQ |
330 |
retval[307] = new Kurt(); // KURT |
331 |
retval[308] = new Skew(); // SKEW |
332 |
retval[309] = new Ztest(); // ZTEST |
333 |
retval[310] = new Large(); // LARGE |
334 |
retval[311] = new Small(); // SMALL |
335 |
retval[312] = new Quartile(); // QUARTILE |
336 |
retval[313] = new Percentile(); // PERCENTILE |
337 |
retval[314] = new Percentrank(); // PERCENTRANK |
338 |
retval[315] = new Mode(); // MODE |
339 |
retval[316] = new Trimmean(); // TRIMMEAN |
340 |
retval[317] = new Tinv(); // TINV |
341 |
retval[318] = new Moviecommand(); // MOVIECOMMAND |
342 |
retval[319] = new Getmovie(); // GETMOVIE |
343 |
retval[320] = new Concatenate(); // CONCATENATE |
344 |
retval[321] = new Power(); // POWER |
345 |
retval[322] = new Pivotadddata(); // PIVOTADDDATA |
346 |
retval[323] = new Getpivottable(); // GETPIVOTTABLE |
347 |
retval[324] = new Getpivotfield(); // GETPIVOTFIELD |
348 |
retval[325] = new Getpivotitem(); // GETPIVOTITEM |
349 |
retval[326] = new Radians(); // RADIANS |
350 |
retval[327] = new Degrees(); // DEGREES |
351 |
retval[328] = new Subtotal(); // SUBTOTAL |
352 |
retval[329] = new Sumif(); // SUMIF |
353 |
retval[330] = new Countif(); // COUNTIF |
354 |
retval[331] = new Countblank(); // COUNTBLANK |
355 |
retval[332] = new Scenarioget(); // SCENARIOGET |
356 |
retval[333] = new Optionslistsget(); // OPTIONSLISTSGET |
357 |
retval[334] = new Ispmt(); // ISPMT |
358 |
retval[335] = new Datedif(); // DATEDIF |
359 |
retval[336] = new Datestring(); // DATESTRING |
360 |
retval[337] = new Numberstring(); // NUMBERSTRING |
361 |
retval[338] = new Roman(); // ROMAN |
362 |
retval[339] = new Opendialog(); // OPENDIALOG |
363 |
retval[340] = new Savedialog(); // SAVEDIALOG |
364 |
retval[341] = new Viewget(); // VIEWGET |
365 |
retval[342] = new Getpivotdata(); // GETPIVOTDATA |
366 |
retval[343] = new Hyperlink(); // HYPERLINK |
367 |
retval[344] = new Phonetic(); // PHONETIC |
368 |
retval[345] = new Averagea(); // AVERAGEA |
369 |
retval[346] = new Maxa(); // MAXA |
370 |
retval[347] = new Mina(); // MINA |
371 |
retval[348] = new Stdevpa(); // STDEVPA |
372 |
retval[349] = new Varpa(); // VARPA |
373 |
retval[350] = new Stdeva(); // STDEVA |
374 |
retval[351] = new Vara(); // VARA |
375 |
return retval; |
376 |
} |
377 |
} |