File Coverage

blib/lib/Autodia/Diagram/Realization.pm
Criterion Covered Total %
statement 15 77 19.4
branch 0 6 0.0
condition 0 3 0.0
subroutine 5 16 31.2
pod 0 9 0.0
total 20 111 18.0


line stmt bran cond sub pod time code
1             ################################################################
2             # AutoDia - Automatic Dia XML.(C)Copyright 2001-2009 A Trevena #
3             # #
4             # AutoDia comes with ABSOLUTELY NO WARRANTY; see COPYING file #
5             # This is free software, and you are welcome to redistribute #
6             # it under certain conditions; see COPYING file for details #
7             ################################################################
8             package Autodia::Diagram::Realization;
9              
10 1     1   5 use strict;
  1         2  
  1         40  
11              
12 1     1   5 use vars qw($VERSION @ISA @EXPORT);
  1         2  
  1         59  
13 1     1   6 use Exporter;
  1         3  
  1         41  
14 1     1   5 use Autodia::Diagram::Object;
  1         2  
  1         39  
15              
16 1     1   5 use Data::Dumper;
  1         2  
  1         802  
17              
18             @ISA = qw(Autodia::Diagram::Object);
19              
20             my $dependancy_count = 0;
21              
22             #---------------------------------------------------------------------
23             # Constructor Methods
24              
25             sub new {
26 0     0 0   my $class = shift;
27 0           my $child = shift;
28 0           my $parent = shift;
29 0           my $DiagramDependancy = {};
30 0   0       bless( $DiagramDependancy, ref($class) || $class );
31 0           $DiagramDependancy->_initialise( $child, $parent );
32 0           return $DiagramDependancy;
33             }
34              
35             #-----------------------------------------------------------------------
36             # Access Methods
37              
38             sub Parent {
39 0     0 0   my $self = shift;
40 0           my $parent = shift;
41 0           my $return_val = 1;
42              
43 0 0         if( defined $parent ) { $self->{"parent"} = $parent; }
  0            
44 0           else { $return_val = $self->{"parent"}; }
45              
46 0           return $return_val;
47             }
48              
49             sub Child {
50 0     0 0   my $self = shift;
51 0           my $child = shift;
52 0           my $return_val = 1;
53              
54 0 0         if( defined $child ) { $self->{"child"} = $child; }
  0            
55 0           else { $return_val = $self->{"child"}; }
56              
57 0           return $return_val;
58             }
59              
60             sub Name {
61 0     0 0   my $self = shift;
62 0           my $name = shift;
63              
64 0 0         if( defined $name ) {
65 0           $self->{"name"} = $name;
66 0           return 1;
67             }
68 0           else { return $self->{"name"}; }
69             }
70              
71             sub Orth_Top_Right {
72 0     0 0   my $self = shift;
73 0           return $self->{"top_connection"};
74             }
75              
76             sub Orth_Bottom_Left {
77 0     0 0   my $self = shift;
78 0           return $self->{"bottom_connection"};
79             }
80              
81             sub Orth_Mid_Left {
82 0     0 0   my $self = shift;
83 0           my $return = ( $self->{"left_x"} ) . "," . $self->{"mid_y"};
84              
85 0           return $return;
86             }
87              
88             sub Orth_Mid_Right {
89 0     0 0   my $self = shift;
90 0           my $return = ( $self->{"right_x"} ) . "," . $self->{"mid_y"};
91              
92 0           return $return;
93             }
94              
95             sub Reposition {
96 0     0 0   my $self = shift;
97              
98 0           my $child = $self->{"_child"};
99              
100 0           my( $left_x, $bottom_y ) = split( ",", $child->TopLeftPos );
101 0           my $mid_y = $bottom_y - 1.5;
102 0           my $top_y = $mid_y - 1.5;
103 0           $left_x += 2 + ( $child->Width / 2 );
104 0           my $right_x = $left_x + 5;
105              
106 0           $self->{"left_x"} = $left_x;
107             (
108 0           $self->{"right_x"}, $self->{"top_y"},
109             $self->{"mid_y"}, $self->{"bottom_y"}
110             ) = ( $right_x, $top_y, $mid_y, $bottom_y );
111 0           $self->{"top_connection"} = $self->{right_x} . "," . $self->{"top_y"};
112 0           $self->{"bottom_connection"} = $left_x . "," . $bottom_y;
113              
114 0           return 1;
115             }
116              
117             #-----------------------------------------------------------
118             # Internal Methods
119              
120             sub _initialise # over-rides method in DiagramObject
121             {
122 0     0     my $self = shift;
123 0           my $child = shift;
124 0           my $parent = shift;
125              
126 0           $self->{"_child"} = $child;
127 0           $self->{"child"} = $child->Id;
128 0           $self->{"type"} = "realization";
129 0           $self->{"_parent"} = $parent;
130 0           $self->{"parent"} = $parent->Id;
131 0           $self->{"name"} = $self->{"parent"} . "-" . $self->{"child"};
132              
133 0           return 1;
134             }
135              
136             sub _update # over-rides method in DiagramObject
137             {
138 0     0     my $self = shift;
139 0           $self->Reposition();
140 0           return 1;
141             }
142              
143             1;
144              
145             ############################################################################
146              
147             =head1
148              
149             =cut