Class::DBI::Cascade::Fail - Do not cascade if foreign objects exist


Class-DBI documentation Contained in the Class-DBI distribution.

Index


Code Index:

NAME

Top

Class::DBI::Cascade::Fail - Do not cascade if foreign objects exist

DESCRIPTION

Top

This is a Cascading Delete strategy that will throw an error if any object about to be deleted still has any other objects pointing at it.


Class-DBI documentation Contained in the Class-DBI distribution.

package Class::DBI::Cascade::Fail;

use strict;
use warnings;

use base 'Class::DBI::Cascade::None';

sub cascade {
	my ($self, $obj) = @_;
	my $refs = $self->foreign_for($obj)->count or return;
	$self->{_rel}->foreign_class->_croak(
		"$refs objects still refer to $obj. Deletion failed");
}

1;