NAME
Data::FSM::Transition - Data object for Finite Transition Machine transition.
SYNOPSIS
use Data::FSM::Transition;
my $obj = Data::FSM::Transition->new(%params);
my $callback = $obj->callback;
my $from = $obj->from;
my $id = $obj->id;
my $name = $obj->name;
my $to = $obj->to;
METHODS
new
my $obj = Data::FSM::Transition->new(%params);
Constructor.
callbackTransition callback.
It's optional.
Default value is undef.
fromData::FSM::State state object.
It's required.
Default value is undef.
idFSM state id. The id is positive natural number.
It's optional.
Default value is undef.
nameFSM state name. The length of name is 100 characters.
Default value is undef.
toData::FSM::State state object.
It's required.
Default value is undef.
Returns instance of object.
callback
my $callback = $obj->callback;
Get transition callback.
Returns reference to code.
from
my $from = $obj->from;
Get state object from which transition starts.
Returns Data::FSM::State instance.
id
my $id = $obj->id;
Get FSM state id.
Returns positive natural number.
initial
my $initial = $obj->initial;
Get inital flag..
Returns boolean (0/1).
name
my $name = $obj->name;
Get FSM state name.
Returns string.
to
my $to = $obj->to;
Get state object from which transition ends.
Returns Data::FSM::State instance.
ERRORS
new():
From Mo::Utils::check_code():
Parameter '%s' must be a code.
Value: %s
From Mo::utils::check_code():
Parameter '%s' must be a '%s' object.
Value: %s
Reference: %s
From Mo::Utils::check_length():
Parameter 'name' has length greater than '100'.
Value: %s
From Mo::utils::check_required():
Parameter '%s' is required.
From Mo::utils::Number::check_positive_natural():
Parameter 'id' must be a positive natural number.
Value: %s
EXAMPLE
use strict;
use warnings;
use Data::FSM::Transition;
use Data::FSM::State;
my $locked = Data::FSM::State->new(
'name' => 'Locked',
);
my $unlocked = Data::FSM::State->new(
'name' => 'Unlocked',
);
my $obj = Data::FSM::Transition->new(
'callback' => sub {
my $self = shift;
print 'Id: '.$self->id."\n";
},
'from' => $locked,
'id' => 7,
'name' => 'Coin',
'to' => $unlocked,
);
# Print out.
print 'Id: '.$obj->id."\n";
print 'From: '.$obj->from->name."\n";
print 'To: '.$obj->from->name."\n";
print 'Name: '.$obj->name."\n";
# Output:
# Id: 7
# From: Locked
# To: Locked
# Name: Coin
DEPENDENCIES
Mo, Mo::utils, Mo::utils::Number.
REPOSITORY
https://github.com/michal-josef-spacek/Data-FSM
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2025-2026 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.01