#==============================================================
# 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;
}