1 package SQL::Translator::Schema::Graph::Node;
6 use Class::MakeMethods::Template::Hash (
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 ) ],
20 $self->{_many} ||= {};
24 return $self->{_many}{$k} || 0;
28 foreach my $k (keys %arg){
29 #warn $a,"\t",$arg{$k};
30 $self->{_many}{$k} = $arg{$k};
35 return $self->{_many};
46 return $self->{_via}{$k} || 0;
50 foreach my $k (keys %arg){
51 #warn $a,"\t",$arg{$k};
52 $self->{_via}{$k} = $arg{$k};
68 return $self->{_has}{$k} || 0;
72 foreach my $k (keys %arg){
73 #warn $a,"\t",$arg{$k};
74 $self->{_has}{$k} = $arg{$k};
86 $self->{_edgecount} ||= {};
90 return $self->{_edgecount}{$k} || 0;
94 foreach my $k (keys %arg){
95 #warn $a,"\t",$arg{$k};
96 $self->{_edgecount}{$k} = $arg{$k};
101 return $self->{_edgecount};
108 $self->{_data_fields} ||= {};
112 return $self->{_data_fields}{$k};
116 foreach my $k (keys %arg){
117 #warn $a,"\t",$arg{$k};
118 $self->{_data_fields}{$k} = $arg{$k};
123 return $self->{_data_fields};