org.apache.poi.ss.formula.ptg

## Class AbstractFunctionPtg

- java.lang.Object
- - org.apache.poi.ss.formula.ptg.Ptg
  - - org.apache.poi.ss.formula.ptg.OperationPtg
    - - org.apache.poi.ss.formula.ptg.AbstractFunctionPtg

- All Implemented Interfaces:
    Duplicatable
  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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `FUNCTION_NAME_IF` The name of the IF function (i.e.

    - ### Fields inherited from class org.apache.poi.ss.formula.ptg.OperationPtg

      `TYPE_BINARY, TYPE_FUNCTION, TYPE_UNARY`

    - ### Fields inherited from class org.apache.poi.ss.formula.ptg.Ptg

      `CLASS_ARRAY, CLASS_REF, CLASS_VALUE, EMPTY_PTG_ARRAY`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractFunctionPtg(int functionIndex, int pReturnClass, byte[] paramTypes, int nParams)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte` | `getDefaultOperandClass()`
    `short` | `getFunctionIndex()`
    `java.lang.String` | `getName()`
    `int` | `getNumberOfOperands()` The number of operands expected by the operations
    `byte` | `getParameterClass(int index)`
    `abstract int` | `getSize()`
    `boolean` | `isBaseToken()`
    `static boolean` | `isBuiltInFunctionName(java.lang.String name)` Used to detect whether a function name found in a formula is one of the standard excel functions
    `boolean` | `isExternalFunction()` external functions get some special processing
    `protected static short` | `lookupIndex(java.lang.String name)` Resolves internal function names into function indexes.
    `protected java.lang.String` | `lookupName(short index)`
    `protected java.lang.String` | `lookupName(short index, boolean isCetab)`
    `java.lang.String` | `toFormulaString()` return a string representation of this token alone
    `java.lang.String` | `toFormulaString(java.lang.String[] operands)` returns a string representation of the operations the length of the input array should equal the number returned by
    `java.lang.String` | `toString()` Overridden toString method to ensure object hash is not printed.

    - ### Methods inherited from class org.apache.poi.ss.formula.ptg.Ptg

      `copy, createPtg, doesFormulaReferToDeletedCell, getEncodedSize, getEncodedSizeWithoutArrayData, getPtgClass, getRVAType, readTokens, serializePtgs, setClass, write`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### FUNCTION_NAME_IF

          public static final java.lang.String FUNCTION_NAME_IF

      The name of the IF function (i.e. "IF"). Extracted as a constant for clarity.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### AbstractFunctionPtg

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

  - ### Method Detail

    - #### 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 java.lang.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 java.lang.String getName()

    - #### isExternalFunction

          public final boolean isExternalFunction()

      external functions get some special processing
      Returns:
        `true` if this is an external function

    - #### toFormulaString

          public final java.lang.String toFormulaString()

      Description copied from class: `Ptg`
      return a string representation of this token alone
      Specified by:
        `toFormulaString` in class `Ptg`

    - #### toFormulaString

          public java.lang.String toFormulaString(java.lang.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:
        `OperationPtg.getNumberOfOperands()`

    - #### 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(java.lang.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 java.lang.String lookupName(short index)

    - #### lookupName

          protected final java.lang.String lookupName(short index,
                                                      boolean isCetab)

    - #### lookupIndex

          protected static short lookupIndex(java.lang.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)

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.