IdentifiableMemoryPersistence<T extends IIdentifiable<K> , K> class
Abstract persistence component that stores data in memory and implements a number of CRUD operations over data items with unique ids. The data items must implement IIdentifiable interface.
In basic scenarios child classes shall only override getPageByFilter
,
getListByFilter
or deleteByFilter
operations with specific filter function.
All other operations can be used out of the box.
In complex scenarios child classes can implement additional operations by accessing cached items via this._items property and calling save method on updates.
Configuration parameters
options
:max_page_size
: Maximum number of items returned in a single page (default: 100)
References
- *:logger:*:*:1.0 (optional) ILogger components to pass log messages
Examples
class MyMemoryPersistence extends IdentifiableMemoryPersistence<MyData, string> {
dynamic _composeFilter(FilterParams filter) {
filter = filter ?? FilterParams();
var name = filter.getAsNullableString("name");
return (item) {
if (name != null && item.name != name)
return false;
return true;
};
}
Future<DataPage<MyData>> getPageByFilter(String? correlationId, FilterParams filter, PagingParams paging){
return super.getPageByFilter(correlationId, composeFilter(filter), paging, null, null);
}
}
var persistence = MyMemoryPersistence();
var item = persistence.create("123", { id: "1", name: "ABC" })
var page = persistence.getPageByFilter(
"123",
FilterParams.fromTuples("name", "ABC"
),
null);
print(page.data); // Result: { id: "1", name: "ABC" }
item = persistence.deleteById("123", "1"); ...
- Inheritance
-
- Object
- MemoryPersistence<
T> - IdentifiableMemoryPersistence
- Implemented types
- Implementers
Constructors
-
IdentifiableMemoryPersistence([ILoader<
T> ? loader, ISaver<T> ? saver]) - Creates a new instance of the persistence.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
-
items
↔ List<
T> -
getter/setter pairinherited
-
loader
↔ ILoader<
T> ? -
getter/setter pairinherited
- logger ↔ CompositeLogger
-
getter/setter pairinherited
- maxPageSize ↔ int
-
getter/setter pairinherited
- opened ↔ bool
-
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
saver
↔ ISaver<
T> ? -
getter/setter pairinherited
Methods
-
clear(
String? correlationId) → Future -
Clears component state.
inherited
-
close(
String? correlationId) → Future -
Closes component and frees used resources.
inherited
-
configure(
ConfigParams config) → void - Configures component by passing configuration parameters.
-
create(
String? correlationId, T? item) → Future< T?> -
Creates a data item.
override
-
deleteByFilterEx(
String? correlationId, Function filter) → Future -
Deletes data items that match to a given filter.
inherited
-
deleteById(
String? correlationId, K? id) → Future< T?> -
Deleted a data item by it's unique id.
override
-
deleteByIds(
String? correlationId, List< K> ids) → Future - Deletes multiple data items by their unique ids.
-
getCountByFilterEx(
String? correlationId, Function? filter) → Future< int> -
Gets a count of data items retrieved by a given filter.
inherited
-
getListByFilterEx(
String? correlationId, Function? filter, Function? sort, dynamic select) → Future< List< T> > -
Gets a list of data items retrieved by a given filter and sorted according to sort parameters.
inherited
-
getListByIds(
String? correlationId, List< K> ids) → Future<List< T> > - Gets a list of data items retrieved by given unique ids.
-
getOneById(
String? correlationId, K id) → Future< T?> -
Gets a data item by its unique id.
override
-
getOneRandom(
String? correlationId, Function? filter) → Future< T?> -
Gets a random item from items that match to a given filter.
inherited
-
getPageByFilterEx(
String? correlationId, Function? filter, PagingParams? paging, Function? sort, [dynamic select]) → Future< DataPage< T> > -
Gets a page of data items retrieved by a given filter and sorted according to sort parameters.
inherited
-
isOpen(
) → bool -
Checks if the component is opened.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
open(
String? correlationId) → Future -
Opens the component.
inherited
-
save(
String? correlationId) → Future -
Saves items to external data source using configured saver component.
inherited
-
set(
String? correlationId, T? item) → Future< T?> -
Sets a data item. If the data item exists it updates it,
otherwise it create a new data item.
override
-
setReferences(
IReferences references) → void -
Sets references to dependent components.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
update(
String? correlationId, T? item) → Future< T?> -
Updates a data item.
override
-
updatePartially(
String? correlationId, K id, AnyValueMap data) → Future< T?> - Updates only few selected fields in a data item.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited