mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-11-22 21:09:21 +00:00
43 lines
924 B
Dart
43 lines
924 B
Dart
import 'dart:collection';
|
|
|
|
import 'package:comunic/models/user.dart';
|
|
|
|
/// Users list
|
|
///
|
|
/// @author Pierre HUBERT
|
|
|
|
class UsersList extends ListBase<User> {
|
|
List<User> _list = [];
|
|
|
|
int get length => _list.length;
|
|
|
|
set length(l) => _list.length = l;
|
|
|
|
@override
|
|
User operator [](int index) {
|
|
return _list[index];
|
|
}
|
|
|
|
@override
|
|
void operator []=(int index, User value) {
|
|
_list[index] = value;
|
|
}
|
|
|
|
/// Find a user with a specific ID
|
|
User getUser(int? userID) {
|
|
for (int i = 0; i < this.length; i++)
|
|
if (this[i].id == userID) return this[i];
|
|
|
|
throw "User not found in the list!";
|
|
}
|
|
|
|
/// Check if the user is included in this list or not
|
|
bool hasUser(int? userID) => any((f) => f.id == userID);
|
|
|
|
/// Get the list of users ID present in this list
|
|
List<int?> get usersID => List.generate(length, (i) => this[i].id);
|
|
|
|
@override
|
|
void add(User element) => _list.add(element);
|
|
}
|