An abstract class representing a Repository.
Repositories store and process uniform data. The data is considered uniform (enough) if every new instance of that data can substitute the previous one.
The only thing repositories shouldn't do is fetching the data directly, consider transferring this responsibility to a Gateway.
Except for Caching, repositories are also listenable. Fetch results can be observed in the stream provided by the Listenable trait.
One more thing is the data relevancy. Since repositories fetch uniform data that is cached, the cache can become obsolete after some time or on specific occasions. So to manage that there is a an additional wrapper RepositoryValue which contains the most recent repository cache value tagged as either relevant or irrelevant.
- Implemented types
-
- Fetching<
T> - Listenable<
T> - Caching<
T>
- Fetching<
- Implementers
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
stream
→ Stream<
FetchedData< T> > -
no setterinherited
-
value
→ RepositoryValue<
T> -
no setter
Methods
-
dispose(
) → void -
inherited
-
fetch(
Request request) → Future< T> -
inherited
-
fetchCached(
Request request) → Future< T> -
inherited
-
init(
) → void -
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited