private void writeColumns(DataPointsRowKey rowKey, List<HColumn<Integer, ByteBuffer>> columns)
      throws IOException {
    if (columns.size() != 0) {
      Map<String, String> tags = rowKey.getTags();
      m_queryCallback.startDataPointSet(tags);

      for (HColumn<Integer, ByteBuffer> column : columns) {
        int columnTime = column.getName();

        ByteBuffer value = column.getValue();
        if (isLongValue(columnTime)) {
          m_queryCallback.addDataPoint(
              getColumnTimestamp(rowKey.getTimestamp(), columnTime),
              ValueSerializer.getLongFromByteBuffer(value));
        } else {
          m_queryCallback.addDataPoint(
              getColumnTimestamp(rowKey.getTimestamp(), columnTime),
              ValueSerializer.getDoubleFromByteBuffer(value));
        }
      }
    }
  }