Class AbstractFunctionPtg

Direct Known Subclasses:
FuncPtg, FuncVarPtg

public abstract class AbstractFunctionPtg extends OperationPtg
This class provides the base functionality for Excel sheet functions There are two kinds of function Ptgs - tFunc and tFuncVar Therefore, this class will have ONLY two subclasses
Author:
Avik Sengupta, Andrew C. Oliver (acoliver at apache dot org)
  • Field Details

    • FUNCTION_NAME_IF

      public static final String FUNCTION_NAME_IF
      The name of the IF function (i.e. "IF"). Extracted as a constant for clarity.
      See Also:
  • Constructor Details

    • AbstractFunctionPtg

      protected AbstractFunctionPtg(int functionIndex, int pReturnClass, byte[] paramTypes, int nParams)
  • Method Details

    • isBaseToken

      public final boolean isBaseToken()
      Specified by:
      isBaseToken in class Ptg
      Returns:
      false if this token is classified as 'reference', 'value', or 'array'
    • toString

      public final String toString()
      Description copied from class: Ptg
      Overridden toString method to ensure object hash is not printed. This helps get rid of gratuitous diffs when comparing two dumps Subclasses may output more relevant information by overriding this method
      Overrides:
      toString in class Ptg
    • getFunctionIndex

      public final short getFunctionIndex()
    • getNumberOfOperands

      public final int getNumberOfOperands()
      Description copied from class: OperationPtg
      The number of operands expected by the operations
      Specified by:
      getNumberOfOperands in class OperationPtg
    • getName

      public final String getName()
    • isExternalFunction

      public final boolean isExternalFunction()
      external functions get some special processing
      Returns:
      true if this is an external function
    • toFormulaString

      public final String toFormulaString()
      Description copied from class: Ptg
      return a string representation of this token alone
      Specified by:
      toFormulaString in class Ptg
    • toFormulaString

      public String toFormulaString(String[] operands)
      Description copied from class: OperationPtg
      returns a string representation of the operations the length of the input array should equal the number returned by
      Specified by:
      toFormulaString in class OperationPtg
      See Also:
    • getSize

      public abstract int getSize()
      Specified by:
      getSize in class Ptg
      Returns:
      the encoded length of this Ptg, including the initial Ptg type identifier byte.
    • isBuiltInFunctionName

      public static boolean isBuiltInFunctionName(String name)
      Used to detect whether a function name found in a formula is one of the standard excel functions

      The name matching is case insensitive.

      Returns:
      true if the name specifies a standard worksheet function, false if the name should be assumed to be an external function.
    • lookupName

      protected final String lookupName(short index)
    • lookupIndex

      protected static short lookupIndex(String name)
      Resolves internal function names into function indexes.

      The name matching is case insensitive.

      Returns:
      the standard worksheet function index if found, otherwise FUNCTION_INDEX_EXTERNAL
    • getDefaultOperandClass

      public byte getDefaultOperandClass()
      Overrides:
      getDefaultOperandClass in class OperationPtg
    • getParameterClass

      public final byte getParameterClass(int index)