| Method from org.apache.poi.hssf.record.formula.AbstractFunctionPtg Detail: |
public byte getDefaultOperandClass() {
return returnClass;
}
|
public short getFunctionIndex() {
return field_2_fnc_index;
}
|
public String getName() {
return lookupName(field_2_fnc_index);
}
|
public byte getParameterClass(int index) {
if (index >= paramClass.length) {
// For var-arg (and other?) functions, the metadata does not list all the parameter
// operand classes. In these cases, all extra parameters are assumed to have the
// same operand class as the last one specified.
return paramClass[paramClass.length - 1];
}
return paramClass[index];
}
|
abstract public int getSize()
|
public final boolean isBaseToken() {
return false;
}
|
public boolean isExternalFunction() {
return field_2_fnc_index == FUNCTION_INDEX_EXTERNAL;
}
external functions get some special processing |
public static final boolean isInternalFunctionName(String name) {
short ix = FunctionMetadataRegistry.lookupIndexByName(name.toUpperCase());
return ix >= 0;
}
|
protected static short lookupIndex(String name) {
short ix = FunctionMetadataRegistry.lookupIndexByName(name.toUpperCase());
if (ix < 0) {
return FUNCTION_INDEX_EXTERNAL;
}
return ix;
}
|
protected String lookupName(short index) {
if(index == FunctionMetadataRegistry.FUNCTION_INDEX_EXTERNAL) {
return "#external#";
}
FunctionMetadata fm = FunctionMetadataRegistry.getFunctionByIndex(index);
if(fm == null) {
throw new RuntimeException("bad function index (" + index + ")");
}
return fm.getName();
}
|
public String toFormulaString(HSSFWorkbook book) {
return getName();
}
|
public String toFormulaString(String[] operands) {
StringBuffer buf = new StringBuffer();
if(isExternalFunction()) {
buf.append(operands[0]); // first operand is actually the function name
appendArgs(buf, 1, operands);
} else {
buf.append(getName());
appendArgs(buf, 0, operands);
}
return buf.toString();
}
|
public String toString() {
StringBuffer sb = new StringBuffer(64);
sb.append(getClass().getName()).append(" [");
sb.append(field_2_fnc_index).append(" ").append(field_1_num_args);
sb.append("]");
return sb.toString();
}
|
abstract public void writeBytes(byte[] array,
int offset)
|