Class::Workflow::Transition::Validate - Provide a hook for validating a
transition (conditionals, input validators, etc).
package MyTransition;
use Moose;
with qw/
Class::Workflow::Transition
Class::Workflow::Transition::Validate
/;
sub validate {
my ( $self, $instance, %args ) = @_;
die "only the owner can apply this transition"
unless $args{user} eq $instance->owner;
}
This role will call the "validate" method at
the appropriate time.
"validate" receives the same
arguments as "apply", and is expected to
die if any of the parameters for the transition are invalid.
Technically, this role doesn't do much more than adding syntactic
sugar for "before 'apply'". However, it's
value is in the convention that you can call
"validate" without applying the body. This
eases writing side effect free introspection of transitions.