Mercurial > pub > Impl
diff Lib/IMPL/Class/MemberInfo.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/MemberInfo.pm Fri Feb 01 16:37:59 2013 +0400 +++ b/Lib/IMPL/Class/MemberInfo.pm Mon Feb 04 02:10:37 2013 +0400 @@ -1,23 +1,33 @@ package IMPL::Class::MemberInfo; use strict; -use parent qw(IMPL::Object::Accessor); +use IMPL::Const qw(:prop); +BEGIN { + our @ISA = qw(IMPL::Object::Accessor); +} + +require IMPL::Object::Accessor; require IMPL::Exception; +# использовать ClassPropertyImplementor не получится, поскольку он будет +# создавать экземпляры PropertyInfo, который не доописан (в нем не определены +# члены) __PACKAGE__->mk_accessors( qw( name access class - implementor attributes ) ); -__PACKAGE__->PassThroughArgs; + +our %CTOR = ( + 'IMPL::Object::Accessor' => undef +); sub CTOR { my $this = shift; - + die new IMPL::Exception('The name is required for the member') unless $this->name; die new IMPL::Exception('The class is required for the member') unless $this->class; @@ -25,13 +35,6 @@ $this->access(3) unless $this->access; } -sub Implement { - my ($this) = @_; - $this->implementor->Make($this); - $this->class->set_meta($this); - return; -} - 1; __END__