יובל קוג'מן (Yuval Kogman) > Class-Workflow-0.11 > Class::Workflow::Transition::Simple

Download:
Class-Workflow-0.11.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Source   Latest Release: Class-Workflow-0.11_01

NAME ^

Class::Workflow::Transition::Simple - A useful class (or base class) for writing transitions.

SYNOPSIS ^

        use Class::Workflow::Transition::Simple;

        my $t = Class::Workflow::Transition::Simple->new(
                name           => "feed",
                to_state       => $not_hungry, # Class::Workflow::Transition::State
                body_sets_fields => 1,
                body           => sub {
                        my ( $self, $instance, @args ) = @_;

                        my $remain = $global_food_warehouse->reduce_quantity;

                        return (
                                remaining_food => $remain,
                        );
                },
        );

DESCRIPTION ^

FIELDS ^

name

This is just a string. It can be used to identify the transition in a parent object like Class::Workflow if any.

to_state

This is the state the transition will transfer to. This comes from Class::Workflow::Transition::Deterministic.

body

This is an optional sub (it defaults to <sub { }>) which will be called during apply, after all validation has passed.

The body is invoked as a method on the transition.

See body_sets_fields for the semantics of the return value.

body_sets_fields

When true, then the body is expected to return a hash of fields to override in the instance. See Class::Workflow::Transition::Deterministic for details.

This field is present to avoid writing code like this:

        return ( {}, @return_values );

When you don't want to set fields in the instance.

Defaults to false (just write return @return_value, set to true to set fields).

See also set_fields.

set_fields

This field is a hash ref that will be used as the list of fields to set on the instance when body_sets_fields is false.

If your transition does not need to dynamically set fields you should probably use this.

Defaults to {}.

validate
validators
clear_validators
add_validators

These methods come from Class::Workflow::Transition::Validate::Simple.

ROLES ^

This class consumes the following roles:

syntax highlighting: