org.apache.poi.ss.formula.ptg

## Class ArrayPtg

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

- All Implemented Interfaces:
    Duplicatable

      public final class ArrayPtg
      extends Ptg

  ArrayPtg - handles arrays The ArrayPtg is a little weird, the size of the Ptg when parsing initially only includes the Ptg sid and the reserved bytes. The next Ptg in the expression then follows. It is only after the "size" of all the Ptgs is met, that the ArrayPtg data is actually held after this. So Ptg.createParsedExpression keeps track of the number of ArrayPtg elements and need to parse the data upto the FORMULA record size.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `PLAIN_TOKEN_SIZE` The size of the plain tArray token written within the standard formula tokens (not including the data which comes after all formula tokens)
    `static byte` | `sid`

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

      `CLASS_ARRAY, CLASS_REF, CLASS_VALUE, EMPTY_PTG_ARRAY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ArrayPtg(ArrayPtg other)`
    `ArrayPtg(java.lang.Object[][] values2d)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ArrayPtg` | `copy()`
    `int` | `getColumnCount()`
    `byte` | `getDefaultOperandClass()`
    `int` | `getRowCount()`
    `int` | `getSize()` This size includes the size of the array Ptg plus the Array Ptg Token value size
    `java.lang.Object[][]` | `getTokenArrayValues()`
    `boolean` | `isBaseToken()`
    `java.lang.String` | `toFormulaString()` return a string representation of this token alone
    `java.lang.String` | `toString()` Overridden toString method to ensure object hash is not printed.
    `void` | `write(LittleEndianOutput out)`
    `int` | `writeTokenValueBytes(LittleEndianOutput out)`

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

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

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

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

- - ### Field Detail

    - #### sid

          public static final byte sid

      See Also:
        Constant Field Values

    - #### PLAIN_TOKEN_SIZE

          public static final int PLAIN_TOKEN_SIZE

      The size of the plain tArray token written within the standard formula tokens (not including the data which comes after all formula tokens)
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ArrayPtg

          public ArrayPtg(ArrayPtg other)

    - #### ArrayPtg

          public ArrayPtg(java.lang.Object[][] values2d)

      Parameters:
        `values2d` - array values arranged in rows

  - ### Method Detail

    - #### getTokenArrayValues

          public java.lang.Object[][] getTokenArrayValues()

      Returns:
        2-d array (inner index is rowIx, outer index is colIx)

    - #### isBaseToken

          public boolean isBaseToken()

      Specified by:
        `isBaseToken` in class `Ptg`
      Returns:
        `false` if this token is classified as 'reference', 'value', or 'array'

    - #### toString

          public 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`

    - #### write

          public void write(LittleEndianOutput out)

      Specified by:
        `write` in class `Ptg`

    - #### writeTokenValueBytes

          public int writeTokenValueBytes(LittleEndianOutput out)

    - #### getRowCount

          public int getRowCount()

    - #### getColumnCount

          public int getColumnCount()

    - #### getSize

          public int getSize()

      This size includes the size of the array Ptg plus the Array Ptg Token value size
      Specified by:
        `getSize` in class `Ptg`
      Returns:
        the encoded length of this Ptg, including the initial Ptg type identifier byte.

    - #### toFormulaString

          public java.lang.String toFormulaString()

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

    - #### getDefaultOperandClass

          public byte getDefaultOperandClass()

      Specified by:
        `getDefaultOperandClass` in class `Ptg`

    - #### copy

          public ArrayPtg copy()

      Specified by:
        `copy` in interface `Duplicatable`
      Specified by:
        `copy` in class `Ptg`
      Returns:
        a deep copy of the implementing class / instance

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