deleteCascadeGeneric<O extends Object> static method

Future<Iterable> deleteCascadeGeneric<O extends Object>(
  1. O o, {
  2. Transaction? transaction,
  3. EntityHandler<O>? entityHandler,
  4. EntityRepository<O>? entityRepository,
  5. EntityRepositoryProvider? repositoryProvider,
})

Implementation

static Future<Iterable> deleteCascadeGeneric<O extends Object>(
  O o, {
  Transaction? transaction,
  EntityHandler<O>? entityHandler,
  EntityRepository<O>? entityRepository,
  EntityRepositoryProvider? repositoryProvider,
}) async {
  entityRepository ??= _resolveRepositoryProvider<O>(
    entityHandler,
    entityRepository,
    repositoryProvider,
    obj: o,
  );
  entityHandler ??= _resolveEntityHandler<O>(
    entityHandler,
    entityRepository,
    repositoryProvider,
    obj: o,
  );

  if (entityHandler == null) {
    throw ArgumentError(
      "EntityHandler not provided for type: ${o.runtimeTypeNameUnsafe}",
    );
  }

  var deleted = <Object>[];

  return Transaction.executeBlock(
    (transaction) => _deleteCascadeGenericImpl(
      o,
      transaction,
      entityHandler,
      entityRepository,
      repositoryProvider,
      deleted,
    ).resolveWithValue(deleted),
    transaction: transaction,
  );
}