this is pretty stable, and is ( i think ) generating usable class::dbi
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Schema / Graph / Edge.pm
1 package SQL::Translator::Schema::Graph::Edge;
2
3 use strict;
4
5 use Class::MakeMethods::Template::Hash (
6   new => ['new'],
7   scalar => [ qw( type ) ],
8   array => [ qw( traversals ) ],
9   object => [
10                          'thisfield'    => {class => 'SQL::Translator::Schema::Field'}, #FIXME
11                          'thatfield'    => {class => 'SQL::Translator::Schema::Field'}, #FIXME
12                          'thisnode'     => {class => 'SQL::Translator::Schema::Graph::Node'},
13                          'thatnode'     => {class => 'SQL::Translator::Schema::Graph::Node'},
14
15                         ],
16 );
17
18 sub flip {
19   my $self = shift;
20
21 #warn "self thisfield: ".$self->thisfield->name;
22 #warn "self thatfield: ".$self->thatfield->name;
23
24   return SQL::Translator::Schema::Graph::Edge->new( thisfield => $self->thatfield,
25                                                                                                         thatfield => $self->thisfield,
26                                                                                                         thisnode  => $self->thatnode,
27                                                                                                         thatnode  => $self->thisnode,
28                                                                                                         type => $self->type eq 'import' ? 'export' : 'import'
29                                                                                                   );
30 }
31
32 1;