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