Class::Workflow::Transition - A function over an instance.


        package MyTransition;
        use Moose;
        with 'Class::Workflow::Transition';


This is the base role for transition implementations.

every transition object must comply to it's interface, and furthermore must also use the derive_and_accept_instance method to return a derived instance at the end of the operation.


derive_and_accept_instance $instance, \%attrs, @args

This method calls $instance->derive with the attrs, and then calls the instance accept_instance on the new instance's state.

%attrs must contain the key state, which should do the role Class::Workflow::State.

@args are passed (along with the derived instance) to "accept_instance" in Class::Workflow::State.


apply $insatnce, @args

This method accepts a Class::Workflow::Instance as it's first argument, and is expected to call $self->derive_and_accept_instance( $instance, \%attrs, @args ), with %attrs containing the state that the instance is being transferred to (it doesn't have to be different than the current state).