Remove old dist tarball which snuck in during a14ab50e
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Schema / Graph / Node.pm
1 package # hide from pause
2   SQL::Translator::Schema::Graph::Node;
3
4 use strict;
5 use warnings;
6
7 use Class::MakeMethods::Template::Hash (
8   new => [ 'new' ],
9   'array_of_objects -class SQL::Translator::Schema::Graph::Edge' => [ qw( edges ) ],
10   'array_of_objects -class SQL::Translator::Schema::Graph::CompoundEdge' => [ qw( compoundedges ) ],
11   'array_of_objects -class SQL::Translator::Schema::Graph::HyperEdge' => [ qw( hyperedges ) ],
12   #'hash' => [ qw( many via has edgecount data_fields) ],
13   #'hash' => [ qw( many via has data_fields) ],
14   scalar => [ qw( base name order primary_key primary_key_accessor table is_trivial_link ) ],
15   number => [ qw( order ) ],
16 );
17
18 sub many {
19   my($self) = shift;
20
21   $self->{_many} ||= {};
22
23   if(scalar(@_) == 1){
24     my $k = shift;
25     return $self->{_many}{$k} || 0;
26   } elsif(@_) {
27     my %arg = @_;
28
29     foreach my $k (keys %arg){
30       #warn $a,"\t",$arg{$k};
31       $self->{_many}{$k} = $arg{$k};
32     }
33
34     return %arg;
35   } else {
36     return $self->{_many};
37   }
38 }
39
40 sub via {
41   my($self) = shift;
42
43   $self->{_via} ||= {};
44
45   if(scalar(@_) == 1){
46     my $k = shift;
47     return $self->{_via}{$k} || 0;
48   } elsif(@_) {
49     my %arg = @_;
50
51     foreach my $k (keys %arg){
52       #warn $a,"\t",$arg{$k};
53       $self->{_via}{$k} = $arg{$k};
54     }
55
56     return %arg;
57   } else {
58     return $self->{_via};
59   }
60 }
61
62 sub has {
63   my($self) = shift;
64
65   $self->{_has} ||= {};
66
67   if(scalar(@_) == 1){
68     my $k = shift;
69     return $self->{_has}{$k} || 0;
70   } elsif(@_) {
71     my %arg = @_;
72
73     foreach my $k (keys %arg){
74       #warn $a,"\t",$arg{$k};
75       $self->{_has}{$k} = $arg{$k};
76     }
77
78     return %arg;
79   } else {
80     return $self->{_has};
81   }
82 }
83
84 sub edgecount {
85   my($self) = shift;
86
87   $self->{_edgecount} ||= {};
88
89   if(scalar(@_) == 1){
90     my $k = shift;
91     return $self->{_edgecount}{$k} || 0;
92   } elsif(@_) {
93     my %arg = @_;
94
95     foreach my $k (keys %arg){
96       #warn $a,"\t",$arg{$k};
97       $self->{_edgecount}{$k} = $arg{$k};
98     }
99
100     return %arg;
101   } else {
102     return $self->{_edgecount};
103   }
104 }
105
106 sub data_fields {
107   my($self) = shift;
108
109   $self->{_data_fields} ||= {};
110
111   if(scalar(@_) == 1){
112     my $k = shift;
113     return $self->{_data_fields}{$k};
114   } elsif(@_) {
115     my %arg = @_;
116
117     foreach my $k (keys %arg){
118       #warn $a,"\t",$arg{$k};
119       $self->{_data_fields}{$k} = $arg{$k};
120     }
121
122     return %arg;
123   } else {
124     return $self->{_data_fields};
125   }
126 }
127
128 1;