Class ArrayPtg

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

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.
Author:
Jason Height (jheight at chariot dot net dot au)
  • Field Details

    • sid

      public static final byte sid
      See Also:
    • 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:
  • Constructor Details

    • ArrayPtg

      public ArrayPtg(Object[][] values2d)
      Parameters:
      values2d - array values arranged in rows
  • Method Details

    • getTokenArrayValues

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