getAll method

List<List<T>> getAll(
  1. List<String> keys
)

Returns a list with entries of type List<T>. Each inner list contains one instance of the values logged under keys.

Note: The records for each key must have the same length.

Implementation

List<List<T>> getAll(List<String> keys) {
  final result = <List<T>>[];
  final dim = keys.length;
  // Check all records have same length.
  final count = get(keys.first).length;
  for (var i = 1; i < dim; i++) {
    int tmp = get(keys[i]).length;
    if (count != tmp) {
      throw ErrorOf<DataLog<T>>(
          message: 'Error in method getAll($keys).',
          invalidState: 'The record ${keys[i]} has length $tmp.',
          expectedState: 'All records must have the same length.');
    }
  }

  for (var i = 0; i < count; ++i) {
    result.add(
      List<T>.generate(
        dim,
        (k) => get(keys[k])[i],
      ),
    );
  }
  return result;
}