Barrie Slaymaker > StateML-0.22 > StateML::Machine

Download:
StateML-0.22.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Source  

NAME ^

StateML::Machine - a StateML state machine data structure

DESCRIPTION ^

Contains all events, arcs and states for a state machine.

METHODS ^

new

    my $m = StateML::Machine->new ;

autogenerated_message

Sets/gets a suitable warning message that can be placed in a template file.

Use only [\w :./!,-] in this warning message and no newlines, tabs, or other control codes.

modes

Set/get the list of modes that will be used to control what portions of the document get parsed. This is used to conditionally control inclusion of things like optional states or language-specific APIs.

all_state

Returns the "#ALL" state.

states

Returns a list of all states other than state #ALL.

raw_states

Returns a list of all states including #ALL.

description

Sets or gets a textual description of the machine

actions

Returns a list of all actions.

classes

Returns a list of all classes

events

Returns a list of all events.

arcs

Returns a list of all arcs.

preamble

Returns the preamble code.

postamble

Returns the postamble code.

object_by_id

    my $object = $m->object_by_id( $id ) ;
    my $object = $m->object_by_id( $id, $require_type ) ;

Returns the state, event, or arc labelled $id or undef if one isn't found.

If present, $required_type is used to make sure that the object requested if of the indicated type.

action_by_id

Returns an action given it's id. Dies if $id refers to a non-state.

class_by_id

Returns a class given it's id. Dies if $id refers to a non-class.

In general this is not used because inheritance works across all objects.

event_by_id

Returns a event given it's id. Dies if $id refers to a non-event.

state_by_id

Returns a state given it's id. Dies if $id refers to a non-state.

add

    $m->add( $arc ) ;
    $m->add( $class ) ;
    $m->add( $event ) ;
    $m->add( $state ) ;

extract_output_machine

    my $om = $m->extract_output_machine( \@types ) ;

Returns an output machine comprised of the events, arcs, and states that match the \@types specified.

matching_events

   my @events = $m->matching_events( types=>\@types ) ;
   my @events = $m->matching_events( types=>[ "ui", "io" ] ) ;

Gets all events that have type= attributes that match an entry in @types. If no parameters are passed, all events are returned.

Events with a type of "#ANY" or "#ALL" (case insensitive) will show up in all filter settings. Passing "all", "any", "#all", or "#any" in the typelist will cause all events to be returned.

arcs_for_event

    my @arcs = $m->arcs_for_event( $event ) ;

Returns all arcs in the state machine for event $event.

A arc is an edge in the state machine diagram.

Unfolds arcs in state #ALL to be for all states.

all_state_arcs_for_event

    my @arcs = $m->all_state_arcs_for_event( $event ) ;

Returns all arcs in the state machine for event $event.

A arc is an edge in the state machine diagram.

states_by_id

    my %states_by_id = $m->states_by_id ;

Returns a HASH ref of all states indexed by their id= attributes.

states_for_arc

    my @states = $m->states_for_arc( $arc ) ;

Returns all states that appear as starting or ending points for $arc other than the "#ALL" state. Will only return one state for loopbacks.

assert_valid

    $m->assert_valid ;

Dies if there are dangling references. The error message contains all undefined states, events, etc.

LIMITATIONS ^

Alpha code. Ok test suite, but we may need to change things in non-backward compatible ways.

COPYRIGHT ^

    Copyright 2003, R. Barrie Slaymaker, Jr., All Rights Reserved

LICENSE ^

You may use this module under the terms of the BSD, Artistic, or GPL licenses, any version.

AUTHOR ^

Barrie Slaymaker <barries@slaysys.com>

syntax highlighting: