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