ToMany<EntityT> class Null safety

Manages a to-many relation, an unidirectional link from a "source" entity to multiple objects of a "target" entity.

You can:

  • add() new objects to the relation.
  • removeAt() target objects from the relation at a specific list index.
  • remove(id:) target objects from the relation by an ID.
class Student {
  final teachers = ToMany<Teacher>();
  ...
}

// Example 1: create a relation
final teacher1 = Teacher();
final teacher2 = Teacher();

final student1 = Student();
student1.teachers.add(teacher1);
student1.teachers.add(teacher2);

final student2 = Student();
student2.teachers.add(teacher2);

// saves students as well as teachers in the database
store.box<Student>().putMany([student1, student2]);


// Example 2: remove a relation

student.teachers.removeAt(index)
student.teachers.applyToDb(); // or store.box<Student>().put(student);
Mixed in types

Constructors

ToMany()

Properties

first ↔ EntityT
Returns the first element. [...]
read / write, inherited
hashCode int
The hash code for this object. [...]
read-only, inherited
isEmpty bool
Returns true if there are no elements in this collection. [...]
read-only, inherited
isNotEmpty bool
Returns true if there is at least one element in this collection. [...]
read-only, inherited
iterator Iterator<EntityT>
Returns a new Iterator that allows iterating the elements of this Iterable. [...]
read-only, inherited
last ↔ EntityT
Returns the last element. [...]
read / write, inherited
length int
The number of objects in this list. [...]
read / write, override
reversed Iterable<EntityT>
An Iterable of the objects in this list in reverse order.
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
single → EntityT
Checks that this iterable has only one element, and returns that element. [...]
read-only, inherited

Methods

add(EntityT element) → void
Adds value to the end of this list, extending the length by one. [...]
override
addAll(Iterable<EntityT> iterable) → void
Appends all objects of iterable to the end of this list. [...]
override
any(bool test(EntityT element)) bool
Checks whether any element of this iterable satisfies test. [...]
inherited
applyToDb({PutMode mode = PutMode.put, Transaction? tx}) → void
Save changes made to this ToMany relation to the database. Alternatively, you can call box.put(object), its relations are automatically saved. [...]
asMap() Map<int, EntityT>
An unmodifiable Map view of this list. [...]
inherited
cast<R>() List<R>
Returns a view of this list as a list of R instances. [...]
inherited
clear() → void
Removes all objects from this list; the length of the list becomes zero. [...]
inherited
contains(Object? element) bool
Whether the collection contains an element equal to element. [...]
inherited
elementAt(int index) → EntityT
Returns the indexth element. [...]
inherited
every(bool test(EntityT element)) bool
Checks whether every element of this iterable satisfies test. [...]
inherited
expand<T>(Iterable<T> f(EntityT element)) Iterable<T>
Expands each element of this Iterable into zero or more elements. [...]
inherited
fillRange(int start, int end, [EntityT? fill]) → void
Overwrites a range of elements with fillValue. [...]
inherited
firstWhere(bool test(EntityT element), {EntityT orElse()?}) → EntityT
Returns the first element that satisfies the given predicate test. [...]
inherited
fold<T>(T initialValue, T combine(T previousValue, EntityT element)) → T
Reduces a collection to a single value by iteratively combining each element of the collection with an existing value [...]
inherited
followedBy(Iterable<EntityT> other) Iterable<EntityT>
Returns the lazy concatenation of this iterable and other. [...]
inherited
forEach(void action(EntityT element)) → void
Applies the function f to each element of this collection in iteration order.
inherited
getRange(int start, int end) Iterable<EntityT>
Creates an Iterable that iterates over a range of elements. [...]
inherited
indexOf(Object? element, [int start = 0]) int
The first index of element in this list. [...]
inherited
indexWhere(bool test(EntityT element), [int start = 0]) int
The first index in the list that satisfies the provided test. [...]
inherited
insert(int index, EntityT element) → void
Inserts element at position index in this list. [...]
inherited
insertAll(int index, Iterable<EntityT> iterable) → void
Inserts all objects of iterable at position index in this list. [...]
inherited
join([String separator = ""]) String
Converts each element to a String and concatenates the strings. [...]
inherited
lastIndexOf(Object? element, [int? start]) int
The last index of element in this list. [...]
inherited
lastIndexWhere(bool test(EntityT element), [int? start]) int
The last index in the list that satisfies the provided test. [...]
inherited
lastWhere(bool test(EntityT element), {EntityT orElse()?}) → EntityT
Returns the last element that satisfies the given predicate test. [...]
inherited
map<T>(T f(EntityT element)) Iterable<T>
Returns a new lazy Iterable with elements that are created by calling f on each element of this Iterable in iteration order. [...]
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
reduce(EntityT combine(EntityT previousValue, EntityT element)) → EntityT
Reduces a collection to a single value by iteratively combining elements of the collection using the provided function. [...]
inherited
remove(Object? element) bool
Removes the first occurrence of value from this list. [...]
override
removeAt(int index) → EntityT
Removes the object at position index from this list. [...]
inherited
removeLast() → EntityT
Removes and returns the last object in this list. [...]
inherited
removeRange(int start, int end) → void
Removes a range of elements from the list. [...]
inherited
removeWhere(bool test(EntityT element)) → void
Removes all objects from this list that satisfy test. [...]
inherited
replaceRange(int start, int end, Iterable<EntityT> newContents) → void
Replaces a range of elements with the elements of replacements. [...]
inherited
retainWhere(bool test(EntityT element)) → void
Removes all objects from this list that fail to satisfy test. [...]
inherited
setAll(int index, Iterable<EntityT> iterable) → void
Overwrites elements with the objects of iterable. [...]
inherited
setRange(int start, int end, Iterable<EntityT> iterable, [int skipCount = 0]) → void
Writes some elements of iterable into a range of this list. [...]
inherited
shuffle([Random? random]) → void
Shuffles the elements of this list randomly.
inherited
singleWhere(bool test(EntityT element), {EntityT orElse()?}) → EntityT
Returns the single element that satisfies test. [...]
inherited
skip(int count) Iterable<EntityT>
Returns an Iterable that provides all but the first count elements. [...]
inherited
skipWhile(bool test(EntityT element)) Iterable<EntityT>
Returns an Iterable that skips leading elements while test is satisfied. [...]
inherited
sort([int compare(EntityT a, EntityT b)?]) → void
Sorts this list according to the order specified by the compare function. [...]
inherited
sublist(int start, [int? end]) List<EntityT>
Returns a new list containing the elements between start and end. [...]
inherited
take(int count) Iterable<EntityT>
Returns a lazy iterable of the count first elements of this iterable. [...]
inherited
takeWhile(bool test(EntityT element)) Iterable<EntityT>
Returns a lazy iterable of the leading elements satisfying test. [...]
inherited
toList({bool growable = true}) List<EntityT>
Creates a List containing the elements of this Iterable. [...]
override
toSet() Set<EntityT>
Creates a Set containing the same elements as this iterable. [...]
inherited
toString() String
A string representation of this object. [...]
inherited
where(bool test(EntityT element)) Iterable<EntityT>
Returns a new lazy Iterable with all elements that satisfy the predicate test. [...]
inherited
whereType<T>() Iterable<T>
Returns a new lazy Iterable with all elements that have type T. [...]
inherited

Operators

operator +(List<EntityT> other) List<EntityT>
Returns the concatenation of this list and other. [...]
inherited
operator ==(Object other) bool
The equality operator. [...]
inherited
operator [](int index) → EntityT
The object at the given index in the list. [...]
override
operator []=(int index, EntityT element) → void
Sets the value at the given index in the list to value. [...]
override