Repository<T extends Object> class abstract interface

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
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