Abstract persistence component that stores data in flat files and caches them in memory.
Extends: MemoryPersistence
Implements: IConfigurable
Description
The FilePersistence class allows you to create persistence components that store data in flat files and chache them in memory.
Important points
- This is the most basic persistence component that is only able to store data items of any type.
- Specific CRUD operations over the data items must be implemented in child classes by accessing the self._items property and calling the save method.
Configuration parameters
- path: path to the file where data is stored
References
- *:logger:*:*:1.0 - (optional) ILogger components to pass log messages
Constructors
Creates a new instance of the file persistence component.
FilePersistence([JsonFilePersister
persister])
- persister: JsonFilePersister
- (optional) persister component that loads and saves data from/to a flat file.
Fields
Instance methods
configure
Configures the component by passing its configuration parameters.
@override
void configure(ConfigParams config)
- config: ConfigParams - configuration parameters to be set.
Examples
class MyJsonFilePersistence extends FilePersistence<MyData> {
MyJsonFilePersistence([String path]): super(JsonPersister(path)) {
}
Future<MyData> getByName(String? correlationId, String name) async {
var item = items.firstWhere((d) => d.name == name);
return item;
});
Future<MyData> set(String correlatonId, MyData item) {
items = List.from(item.where((d) => d.name != name));
items.add(item);
await save(correlationId);
return item;
}
}