The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Oryx::Parent - multiple inheritance meta-type for Oryx

SYNOPSIS

 package Fruit;
 use base qw(Oryx::Class);
 our $schema = {
     attributes => [{
         colour => 'String',
     }],
 }
 1;
 
 package Food;
 use base qw(Oryx::Class);
 our $schema = {
     attributes => [{
         energy => 'Float',
     }],
 }
 1;
 
 package Orange;
 use base qw(Fruit Food);
 our $schema = {
     attributes => [{
         segments => 'Integer',
     }]
 }
 1;
 
 use Orange;
 my $orange = Orange->create({
     segments => 10,
     energy   => 543.21,
     colour   => 'orange',
 });
 
 $orange->update;
 $orange->commit;
 
 my $id = $orange->id;
 undef $orange;
 
 my $retrieved = Orange->retrieve($id);
 print $retrieved->colour;        # prints 'orange'
 
 my $food_instance = $retrieved->PARENT('Food');
 print $food_instance->energy;    # prints 543.21
 
 $food_instance->energy(42.00);
 $food_instance->update;
 
 my $changed_orange = Orange->retrieve($id);
 print $changed_orange->energy;   # prints 42.00 (parent instance updated)

DESCRIPTION

Oryx::Parent objects are constructed during Oryx::Class initialization by inspecting your class' @ISA array, so you get one of these hanging off your class for each superclass that is also an Oryx::Class derivative.