1package autoclass_103::Parent;
2use strict;
3use Class::AutoClass;
4use vars
5  qw(@ISA @AUTO_ATTRIBUTES @OTHER_ATTRIBUTES @CLASS_ATTRIBUTES %SYNONYMS %DEFAULTS);
6@ISA              = qw(Class::AutoClass);
7@AUTO_ATTRIBUTES  = qw(name sex address dob a _b c d z real);
8@OTHER_ATTRIBUTES = qw(b age);
9@CLASS_ATTRIBUTES = qw(species population class_hash);
10%SYNONYMS         = ( gender => 'sex', whatisya => 'sex', syn=>'real' );
11%DEFAULTS = (
12              a          => 'parent',
13              b          => 'virtual parent',
14              c          => 'default set in parent, used in kids',
15              z          => 'default that is never used',
16              species    => 'Dipodomys gravipes',
17              population => 42,
18              class_hash => {
19                              this  => 'that',
20                              these => 'those',
21              }
22);
23Class::AutoClass::declare(__PACKAGE__);
24
25sub _init_self {
26 my ( $self, $class, $args ) = @_;
27 return
28   unless $class eq __PACKAGE__;    # to prevent subclasses from re-running this
29
30}
31sub age { print "Calculate age from dob. NOT YET IMPLEMENTED\n"; undef }
32# NG 05-12-07. virtual attribute for regression test
33sub b {
34  my $self=shift;
35  @_? $self->_b(@_): $self->_b(@_);
36}
371;
38