public ArrayRecord(RecordInputStream in) {
   super(in);
   _options = in.readUShort();
   _field3notUsed = in.readInt();
   int formulaTokenLen = in.readUShort();
   int totalFormulaLen = in.available();
   _formula = Formula.read(formulaTokenLen, in, totalFormulaLen);
 }
 public String toString() {
   StringBuffer sb = new StringBuffer();
   sb.append(getClass().getName()).append(" [ARRAY]\n");
   sb.append(" range=").append(getRange().toString()).append("\n");
   sb.append(" options=").append(HexDump.shortToHex(_options)).append("\n");
   sb.append(" notUsed=").append(HexDump.intToHex(_field3notUsed)).append("\n");
   sb.append(" formula:").append("\n");
   Ptg[] ptgs = _formula.getTokens();
   for (int i = 0; i < ptgs.length; i++) {
     Ptg ptg = ptgs[i];
     sb.append(ptg.toString()).append(ptg.getRVAType()).append("\n");
   }
   sb.append("]");
   return sb.toString();
 }
 protected void serializeExtraData(LittleEndianOutput out) {
   out.writeShort(_options);
   out.writeInt(_field3notUsed);
   _formula.serialize(out);
 }
 protected int getExtraDataSize() {
   return 2 + 4 + _formula.getEncodedSize();
 }
 public Ptg[] getFormulaTokens() {
   return _formula.getTokens();
 }