shouldUnload method

ShouldUnloadResult shouldUnload()

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