Mercurial > pub > Impl
diff Lib/IMPL/Class/PropertyInfo.pm @ 278:4ddb27ff4a0b
core refactoring
author | cin |
---|---|
date | Mon, 04 Feb 2013 02:10:37 +0400 |
parents | 6253872024a4 |
children |
line wrap: on
line diff
--- a/Lib/IMPL/Class/PropertyInfo.pm Fri Feb 01 16:37:59 2013 +0400 +++ b/Lib/IMPL/Class/PropertyInfo.pm Mon Feb 04 02:10:37 2013 +0400 @@ -1,44 +1,23 @@ package IMPL::Class::PropertyInfo; use strict; -use parent qw(IMPL::Class::MemberInfo); +BEGIN { + our @ISA = qw(IMPL::Class::MemberInfo); +} + +require IMPL::Class::MemberInfo; our %CTOR = ( 'IMPL::Class::MemberInfo' => '@_' ); -__PACKAGE__->mk_accessors(qw(type mutators canGet canSet ownerSet isList)); - -my %LoadedModules; - -sub CTOR { - my $this = shift; - - if ( my $type = $this->attributes ? delete $this->attributes->{type} : undef ) { - $this->type($type); - } - - $this->mutators(0) unless defined $this->mutators; -} - -sub implementor { - my $this = shift; - - if (@_) { - $this->SUPER::implementor(@_); - } else { - my $implementor = $this->SUPER::implementor; - return $implementor if $implementor; - - $implementor = $this->SelectImplementor(); - - $this->implementor($implementor); - } - -} - -sub SelectImplementor { - eval {$_[0]->class->_PropertyImplementor} or die new IMPL::Exception('Can\'t find a property implementor for the specified class',$_[0]->Class); -} - +__PACKAGE__->mk_accessors( + qw( + type + getter + setter + ownerSet + isList + ) +); 1; __END__