X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FSchema%2FField.pm;h=e87e121c53333950551385959770648b3f34d1b2;hb=b178940934ec79968ed16511ec2644f3736c92f2;hp=cfd229076334d44f1f5f4f7c1197db867900099d;hpb=b9dc0b405ffb6c30b255a098c9eb45b901e5f1ef;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Schema/Field.pm b/lib/SQL/Translator/Schema/Field.pm index cfd2290..e87e121 100644 --- a/lib/SQL/Translator/Schema/Field.pm +++ b/lib/SQL/Translator/Schema/Field.pm @@ -1,7 +1,7 @@ package SQL::Translator::Schema::Field; # ---------------------------------------------------------------------- -# $Id: Field.pm,v 1.16 2004-03-23 21:42:42 grommit Exp $ +# $Id: Field.pm,v 1.22 2004-11-05 15:03:10 grommit Exp $ # ---------------------------------------------------------------------- # Copyright (C) 2002-4 SQLFairy Authors # @@ -43,14 +43,14 @@ C is the field object. =cut use strict; -use Class::Base; use SQL::Translator::Schema::Constants; use SQL::Translator::Utils 'parse_list_arg'; -use base 'Class::Base'; +use base 'SQL::Translator::Schema::Object'; + use vars qw($VERSION $TABLE_COUNT $VIEW_COUNT); -$VERSION = sprintf "%d.%02d", q$Revision: 1.16 $ =~ /(\d+)\.(\d+)/; +$VERSION = sprintf "%d.%02d", q$Revision: 1.22 $ =~ /(\d+)\.(\d+)/; # Stringify to our name, being careful not to pass any args through so we don't # accidentally set it to undef. We also have to tweak bool so the object is @@ -62,7 +62,12 @@ use overload ; # ---------------------------------------------------------------------- -sub init { + +__PACKAGE__->_attributes( qw/ + table name data_type size is_primary_key is_nullable + is_auto_increment default_value comments is_foreign_key + is_unique order +/); =pod @@ -70,26 +75,13 @@ sub init { Object constructor. - my $schema = SQL::Translator::Schema::Field->new( + my $field = SQL::Translator::Schema::Field->new( + name => 'foo', + table => $table, ); =cut - my ( $self, $config ) = @_; - - for my $arg ( - qw[ - table name data_type size is_primary_key is_nullable - is_auto_increment default_value comments - ] - ) { - next unless defined $config->{ $arg }; - defined $self->$arg( $config->{ $arg } ) or return; - } - - return $self; -} - # ---------------------------------------------------------------------- sub comments { @@ -165,8 +157,6 @@ assume an error like other methods. } # ---------------------------------------------------------------------- -sub extra { - =pod =head2 extra @@ -179,15 +169,6 @@ Accepts a hash(ref) of name/value pairs to store; returns a hash. =cut - my $self = shift; - my $args = ref $_[0] eq 'HASH' ? shift : { @_ }; - - while ( my ( $key, $value ) = each %$args ) { - $self->{'extra'}{ $key } = $value; - } - - return %{ $self->{'extra'} || {} }; -} # ---------------------------------------------------------------------- sub foreign_key_reference { @@ -487,6 +468,23 @@ Get or set the field's order. } # ---------------------------------------------------------------------- +sub schema { + +=head2 schema + +Shortcut to get the fields schema ($field->table->schema) or undef if it +doesn't have one. + + my $schema = $field->schema; + +=cut + + my $self = shift; + if ( my $table = $self->table ) { return $table->schema || undef; } + return undef; +} + +# ---------------------------------------------------------------------- sub size { =pod