Class::Workflow::Transition::Deterministic - A transition which knows which state it leads to.



NAME

Class::Workflow::Transition::Deterministic - A transition which knows which state it leads to.


SYNOPSIS

        package MyTransition;
        use Moose;
        with qw/
                Class::Workflow::Transition
                Class::Workflow::Deterministic
        /;
        sub apply_body { # instead of 'sub apply'
                # body
        }
        # this may be changed to the following form in the future:
        augment apply => sub {
                # body
        };


DESCRIPTION

This role provides a base role for transitions which know their target state.

It overrides apply with a default implementation that will derive an instance for you, setting state automatically, appending the return value from apply_body to that list.

You should consume this role unless you need to determine the target state dynamically (probably not a good idea).


FIELDS

to_state
The target state of the transition. Should do the Class::Workflow::State manpage.


METHODS

apply
In scalar context returns the derived instance, in list caller also returns the remaining return value from apply_body.


REQUIRED METHODS

apply_body
The ``inner'' body of the function.

This method is always evaluated in list context, and is expected to return a hash reference of overridden fields as the first value in that list.

In the future instead of defining apply_body you will do:

        augment apply => sub {
                # body
        };

And this role's apply will really use inner().

 Class::Workflow::Transition::Deterministic - A transition which knows which state it leads to.