use strict;
use warnings;
=head1 NAME
genericseq.pl - generates xml sequence diagrams from various inputs
=head1 USAGE
genericseq.pl -t 'Title' SeqModule [args_for_SeqModule...]
=head1 DESCRIPTION
Currently there are three sequencing modules you can use for SeqModule
above. They are
UML::Sequence::SimpleSeq
UML::Sequence::PerlSeq
UML::Sequence::JavaSeq
See the documentation in these modules for details on their arguments.
To write your own sequence helper, see UML::Sequence::SimpleSeq and
implement the same API.
=cut
use UML::Sequence;
use Getopt::Std;
my $usage =
"usage: $0 [-t 'Title for Diagram'] outline_style [outline_args...]\n";
die $usage if (@ARGV < 1);
getopt('t');
use vars qw($opt_t);
my $style = shift;
my $outline;
my $methods;
my $parse_method;
my $grab_methods;
{
no strict;
my $style_file = $style;
$style_file =~ s!::!/!g;
require "$style_file.pm";
$outline = $style->grab_outline_text(@ARGV);
$methods = $style->grab_methods($outline);
$parse_method = $style->can(parse_signature);
$grab_methods = $style->can(grab_methods);
}
my $tree = UML::Sequence->new($methods, $outline, $parse_method, $grab_methods);
print($tree->build_xml_sequence($opt_t));