#============================================================== # FILE: Affiliation.pm # # DESCRIPTION: Class that represents the affiliation # a player with a club # #============================================================= package DataObjects::Affiliation; require MySqlTools::Table; our @ISA = qw(MySqlTools::Table); require DataObjects::Club; require DataObjects::Player; require DataObjects::ClubDGAW; use Log::Log4perl qw(get_logger :levels); use strict; use warnings; my $affObject; #============================================================ # # METHOD: new # #=========================================================== sub new { my $class = shift; if ($affObject) {return affObject;} #-- Singleton . . $self->addColumn({name=>'playerID',..... . . #---------------------------------------------------- # Define foreign keys and indexes #---------------------------------------------------- $self->{FKPLAY} = $self->addFks({ NAME =>'Aff_Player_FK', OWNCOLS =>['playerID'], REFTABLE =>'player', REFCOLS =>['playerID'], ONDELETE =>'CASCADE', }); ===> #################################################### ###### - HERE $self->{FKPLAY} contains a valid FK ###### reference, $self->{FKS}[0] contains a ###### funky reference, the debugger shows it ###### to be a FK object, but the hash is ###### empty! ################################################### #### #================================================== # # FILE: Table.pm # # DESCRIPTION: Abstract class to define a table # #================================================= package MySqlTools::Table; require MySqlTools::Column; require MySqlTools::ForeignKey; require MySqlTools::Index; require MySqlTools::ResultSet; require MySqlTools::Database; require Utilities::Properties; use Log::Log4perl qw(get_logger :levels); use strict; use warnings; #================================================== # # METHOD: new # #================================================ sub new { my $class = shift; my $parm = shift; . . bless( $self, $class ); return $self; } . . #=================================================== # # METHOD: addFk # #================================================== sub addFks{ my $self = shift; my $parms = shift; my $log = get_logger("MySqlTools::Table"); my $fkName = $parms->{NAME}; $parms->{OWNTABLE} = $self->{NAME}; $parms->{DBH} = $self->{DBH}; my $fk = MySqlTools::ForeignKey->new($parms); if ( !$fk ) { $log->error('FK->new failed!'); } else { ---> push @{$self->{FKS}}, $fk; } ***> return $fk; } #### sub new { my $class = shift; my $parm = shift; my $log = get_logger("MySqlTools::ForeignKey"); my $self = {}; $self->{DBH} = MySqlTools::Database->new(); $self->{NAME} = $parm->{NAME}; . . $log->info('New ForeignKey object initilized'); bless( $self, $class ); return $self; }