Filter undef from all constructor args
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Schema / Graph / Node.pm
CommitLineData
e3fc8761 1package # hide from pause
2 SQL::Translator::Schema::Graph::Node;
0caaf4c3 3
4use strict;
f27f9229 5use warnings;
0caaf4c3 6
7use Class::MakeMethods::Template::Hash (
11ad2df9 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 ) ],
0caaf4c3 16);
17
7611bcd7 18sub many {
11ad2df9 19 my($self) = shift;
ba506e52 20
11ad2df9 21 $self->{_many} ||= {};
ba506e52 22
11ad2df9 23 if(scalar(@_) == 1){
24 my $k = shift;
25 return $self->{_many}{$k} || 0;
26 } elsif(@_) {
27 my %arg = @_;
7611bcd7 28
11ad2df9 29 foreach my $k (keys %arg){
30 #warn $a,"\t",$arg{$k};
31 $self->{_many}{$k} = $arg{$k};
ba506e52 32 }
11ad2df9 33
34 return %arg;
35 } else {
36 return $self->{_many};
37 }
7611bcd7 38}
39
40sub via {
11ad2df9 41 my($self) = shift;
7611bcd7 42
11ad2df9 43 $self->{_via} ||= {};
7611bcd7 44
11ad2df9 45 if(scalar(@_) == 1){
46 my $k = shift;
47 return $self->{_via}{$k} || 0;
48 } elsif(@_) {
49 my %arg = @_;
7611bcd7 50
11ad2df9 51 foreach my $k (keys %arg){
52 #warn $a,"\t",$arg{$k};
53 $self->{_via}{$k} = $arg{$k};
ba506e52 54 }
11ad2df9 55
56 return %arg;
57 } else {
58 return $self->{_via};
59 }
7611bcd7 60}
61
62sub has {
11ad2df9 63 my($self) = shift;
ba506e52 64
11ad2df9 65 $self->{_has} ||= {};
7611bcd7 66
11ad2df9 67 if(scalar(@_) == 1){
68 my $k = shift;
69 return $self->{_has}{$k} || 0;
70 } elsif(@_) {
71 my %arg = @_;
ba506e52 72
11ad2df9 73 foreach my $k (keys %arg){
74 #warn $a,"\t",$arg{$k};
75 $self->{_has}{$k} = $arg{$k};
ba506e52 76 }
11ad2df9 77
78 return %arg;
79 } else {
80 return $self->{_has};
81 }
7611bcd7 82}
83
7a1eb8c0 84sub edgecount {
11ad2df9 85 my($self) = shift;
7a1eb8c0 86
11ad2df9 87 $self->{_edgecount} ||= {};
7a1eb8c0 88
11ad2df9 89 if(scalar(@_) == 1){
90 my $k = shift;
91 return $self->{_edgecount}{$k} || 0;
92 } elsif(@_) {
93 my %arg = @_;
7a1eb8c0 94
11ad2df9 95 foreach my $k (keys %arg){
96 #warn $a,"\t",$arg{$k};
97 $self->{_edgecount}{$k} = $arg{$k};
ba506e52 98 }
11ad2df9 99
100 return %arg;
101 } else {
102 return $self->{_edgecount};
103 }
7a1eb8c0 104}
105
7611bcd7 106sub data_fields {
11ad2df9 107 my($self) = shift;
ba506e52 108
11ad2df9 109 $self->{_data_fields} ||= {};
7611bcd7 110
11ad2df9 111 if(scalar(@_) == 1){
112 my $k = shift;
113 return $self->{_data_fields}{$k};
114 } elsif(@_) {
115 my %arg = @_;
ba506e52 116
11ad2df9 117 foreach my $k (keys %arg){
118 #warn $a,"\t",$arg{$k};
119 $self->{_data_fields}{$k} = $arg{$k};
ba506e52 120 }
11ad2df9 121
122 return %arg;
123 } else {
124 return $self->{_data_fields};
125 }
7611bcd7 126}
127
0caaf4c3 1281;