I am trying to make multiple Controller Types foo multiple Models for use with Provider in Flutter.
This is my Code:
//generic controller
class ModelController<E extends HiveObject> extends ChangeNotifier {
Box<E> _db;
ModelController(Box<E> db) {
_db = db;
}
// getters
List<E> get all => _db.values;
// create
void add(E item) {
_db.add(item);
notifyListeners();
}
void update(E item) {
item.save();
notifyListeners();
}
// delete
void delete(E item) {
item.delete();
notifyListeners();
}
}
class PacketController extends ModelController<Packet>{
PacketController(Box<Packet> db) : super(db);
}
The code for class PacketController is the only way I found to create a concrete type from a generic one.
Question:Is there a better way for this?
Shortly, I am looking for something like typedef in c++:
typedef IntVector std::vector<int>