The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Autodia::Diagram - Class to hold a collection of objects representing parts of a Dia Diagram.

SYNOPSIS

use Autodia::Diagram;

my $Diagram = Autodia::Diagram->new;

Description

Diagram is an object that contains a collection of diagram elements and the logic to generate the diagram layout as well as to output the diagram itself in Dia's XML format using template toolkit.

METHODS

Class Methods

new - constructor method

creates and returns an unpopulated diagram object.

Object methods

To get a collection of a objects of a certain type you use the method of the same name. ie $Diagram->Classes() returns an array of 'class' objects.

The methods available are Classes(), Components(), Superclasses(), Inheritances(), Relations(), and Dependancies(); These are all called in the template to get the collections of objects to loop through.

To add an object to the diagram. You call the add_<object type> method, for example $Diagram->add_class($class_name), passing the name of the object in the case of Class, Superclass and Component but not Inheritance or Dependancy which have their names generated automagically.

Objects are not removed, they can only be superceded by another object; Component can be superceded by Superclass which can superceded by Class. This is handled by the object itself rather than the diagram.

Accessing and manipulating the Diagram

Elements are added to the Diagram through the add_<elementname> method (ie add_classes() ).

Collections of elements are retrieved through the <elementname> method (ie Classes() ).

The diagram is laid out and output to a file using the export_xml() method.

See Also

Autodia

Autodia::Diagram::Object

Autodia::Diagram::Class

Autodia::Diagram::Superclass

Autodia::Diagram::Component

Autodia::Diagram::Inheritance

Autodia::Diagram::Relation

Autodia::Diagram::Dependancy

AUTHOR

Aaron Trevena, <aaron.trevena@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2004 by Aaron Trevena

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.1 or, at your option, any later version of Perl 5 you may have available.