@Override
    public void read(org.apache.thrift.protocol.TProtocol prot, ArrayData struct) throws org.apache.thrift.TException {
      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
      java.util.BitSet incoming = iprot.readBitSet(3);
      if (incoming.get(0)) {
        struct.rows = iprot.readI32();
        struct.setRowsIsSet(true);
      }
      if (incoming.get(1)) {
        struct.cols = iprot.readI32();
        struct.setColsIsSet(true);
      }
      if (incoming.get(2)) {
        {
          org.apache.thrift.protocol.TList _list26 = iprot.readListBegin(org.apache.thrift.protocol.TType.LIST);
          struct.data = new java.util.ArrayList<java.util.List<java.lang.String>>(_list26.size);
          @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> _elem27;
          for (int _i28 = 0; _i28 < _list26.size; ++_i28)
          {
            {
              org.apache.thrift.protocol.TList _list29 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
              _elem27 = new java.util.ArrayList<java.lang.String>(_list29.size);
              @org.apache.thrift.annotation.Nullable java.lang.String _elem30;
              for (int _i31 = 0; _i31 < _list29.size; ++_i31)
              {
                _elem30 = iprot.readString();
                _elem27.add(_elem30);
              }
            }
            struct.data.add(_elem27);
          }
        }
        struct.setDataIsSet(true);
      }
    }
@Override
    public void read(org.apache.thrift.protocol.TProtocol prot, ArrayData struct)