initialize method

  1. @override
FutureOr<InitializationResult> initialize()
override

Initialization implementation. Do not call it directly, use doInitialization.

It can be a synchronous (returning a bool) or an asynchronous implementation (returning a Future<bool>).

See initializeDependencies.

Implementation

@override
FutureOr<InitializationResult> initialize() {
  if (auxiliaryMode && !capability.multiIsolateSupport) {
    _log.severe(
        "Can't initialize adapter in `DBAdapter.auxiliaryMode`: $this");
    return InitializationResult.error(this);
  }

  return checkDB().resolveMapped((dbOK) {
    if (!dbOK) {
      throw StateError("Can't initialize `DBAdapter`: Table check failed!");
    }

    if (auxiliaryMode) {
      _disposePopulateData();
      return _initializationResultOK(withEntityRepositories: false);
    }

    return populateImpl();
  });
}