X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FSchema%2FGraph%2FNode.pm;h=8b397784ad1790847f796c3b4ba0d46591e02eee;hb=ba506e52c480afe33dfec6b38a12759fad1e7fa2;hp=26c706d2adcf3ee8ced72635e5eb4a382f069237;hpb=7611bcd7d8544fea106e0cfcbcb61f56d483165e;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Schema/Graph/Node.pm b/lib/SQL/Translator/Schema/Graph/Node.pm index 26c706d..8b39778 100644 --- a/lib/SQL/Translator/Schema/Graph/Node.pm +++ b/lib/SQL/Translator/Schema/Graph/Node.pm @@ -2,125 +2,149 @@ package SQL::Translator::Schema::Graph::Node; use strict; +use vars qw[ $VERSION ]; +$VERSION = '1.60'; + use Class::MakeMethods::Template::Hash ( - new => [ 'new' ], - 'array_of_objects -class SQL::Translator::Schema::Graph::Edge' => [ qw( edges ) ], - 'array_of_objects -class SQL::Translator::Schema::Graph::CompoundEdge' => [ qw( compoundedges ) ], - 'array_of_objects -class SQL::Translator::Schema::Graph::HyperEdge' => [ qw( hyperedges ) ], - #'hash' => [ qw( many via has edgecount data_fields) ], - #'hash' => [ qw( many via has data_fields) ], - scalar => [ qw( base name order primary_key primary_key_accessor table is_trivial_link ) ], - number => [ qw( order ) ], + new => ['new'], + 'array_of_objects -class SQL::Translator::Schema::Graph::Edge' => + [qw( edges )], + 'array_of_objects -class SQL::Translator::Schema::Graph::CompoundEdge' => + [qw( compoundedges )], + 'array_of_objects -class SQL::Translator::Schema::Graph::HyperEdge' => + [qw( hyperedges )], + + #'hash' => [ qw( many via has edgecount data_fields) ], + #'hash' => [ qw( many via has data_fields) ], + scalar => [ + qw( base name order primary_key primary_key_accessor table is_trivial_link ) + ], + number => [qw( order )], ); sub many { - my($self) = shift; - - $self->{_many} ||= {}; + my ($self) = shift; - if(scalar(@_) == 1){ - my $k = shift; - return $self->{_many}{$k}; - } elsif(@_) { - my %arg = @_; + $self->{_many} ||= {}; - foreach my $k (keys %arg){ - #warn $a,"\t",$arg{$k}; - $self->{_many}{$k} = $arg{$k}; + if ( scalar(@_) == 1 ) { + my $k = shift; + return $self->{_many}{$k} || 0; } + elsif (@_) { + my %arg = @_; + + foreach my $k ( keys %arg ) { + + #warn $a,"\t",$arg{$k}; + $self->{_many}{$k} = $arg{$k}; + } - return %arg; - } else { - return $self->{_many}; - } + return %arg; + } + else { + return $self->{_many}; + } } sub via { - my($self) = shift; - - $self->{_via} ||= {}; + my ($self) = shift; - if(scalar(@_) == 1){ - my $k = shift; - return $self->{_via}{$k}; - } elsif(@_) { - my %arg = @_; + $self->{_via} ||= {}; - foreach my $k (keys %arg){ - #warn $a,"\t",$arg{$k}; - $self->{_via}{$k} = $arg{$k}; + if ( scalar(@_) == 1 ) { + my $k = shift; + return $self->{_via}{$k} || 0; } + elsif (@_) { + my %arg = @_; - return %arg; - } else { - return $self->{_via}; - } + foreach my $k ( keys %arg ) { + + #warn $a,"\t",$arg{$k}; + $self->{_via}{$k} = $arg{$k}; + } + + return %arg; + } + else { + return $self->{_via}; + } } sub has { - my($self) = shift; - - $self->{_has} ||= {}; + my ($self) = shift; - if(scalar(@_) == 1){ - my $k = shift; - return $self->{_has}{$k}; - } elsif(@_) { - my %arg = @_; + $self->{_has} ||= {}; - foreach my $k (keys %arg){ - #warn $a,"\t",$arg{$k}; - $self->{_has}{$k} = $arg{$k}; + if ( scalar(@_) == 1 ) { + my $k = shift; + return $self->{_has}{$k} || 0; } + elsif (@_) { + my %arg = @_; + + foreach my $k ( keys %arg ) { - return %arg; - } else { - return $self->{_has}; - } + #warn $a,"\t",$arg{$k}; + $self->{_has}{$k} = $arg{$k}; + } + + return %arg; + } + else { + return $self->{_has}; + } } sub edgecount { - my($self) = shift; - - $self->{_edgecount} ||= {}; + my ($self) = shift; - if(scalar(@_) == 1){ - my $k = shift; - return $self->{_edgecount}{$k}; - } elsif(@_) { - my %arg = @_; + $self->{_edgecount} ||= {}; - foreach my $k (keys %arg){ - #warn $a,"\t",$arg{$k}; - $self->{_edgecount}{$k} = $arg{$k}; + if ( scalar(@_) == 1 ) { + my $k = shift; + return $self->{_edgecount}{$k} || 0; } + elsif (@_) { + my %arg = @_; - return %arg; - } else { - return $self->{_edgecount}; - } + foreach my $k ( keys %arg ) { + + #warn $a,"\t",$arg{$k}; + $self->{_edgecount}{$k} = $arg{$k}; + } + + return %arg; + } + else { + return $self->{_edgecount}; + } } sub data_fields { - my($self) = shift; - - $self->{_data_fields} ||= {}; + my ($self) = shift; - if(scalar(@_) == 1){ - my $k = shift; - return $self->{_data_fields}{$k}; - } elsif(@_) { - my %arg = @_; + $self->{_data_fields} ||= {}; - foreach my $k (keys %arg){ - #warn $a,"\t",$arg{$k}; - $self->{_data_fields}{$k} = $arg{$k}; + if ( scalar(@_) == 1 ) { + my $k = shift; + return $self->{_data_fields}{$k}; } + elsif (@_) { + my %arg = @_; + + foreach my $k ( keys %arg ) { - return %arg; - } else { - return $self->{_data_fields}; - } + #warn $a,"\t",$arg{$k}; + $self->{_data_fields}{$k} = $arg{$k}; + } + + return %arg; + } + else { + return $self->{_data_fields}; + } } 1;