shouldUnload method
Public method to query the unloadable state of the Module.
Calls the onShouldUnload() method, which can be implemented on a Module. onShouldUnload is also called on all registered child modules.
Implementation
ShouldUnloadResult shouldUnload() {
// collect results from all child modules and self
List<ShouldUnloadResult> shouldUnloads = [];
for (var child in _childModules) {
if (child.isUnloading || child.isUnloaded || child.isOrWillBeDisposed) {
continue;
}
shouldUnloads.add(child.shouldUnload());
}
shouldUnloads.add(onShouldUnload());
// aggregate into 1 combined result
ShouldUnloadResult finalResult = ShouldUnloadResult();
for (var result in shouldUnloads) {
if (!result.shouldUnload) {
finalResult.shouldUnload = false;
finalResult.messages.addAll(result.messages);
}
}
return finalResult;
}