Mercurial > pub > Impl
diff Lib/IMPL/Class/MemberInfo.pm @ 275:6253872024a4
*refactoring IMPL::Class
author | cin |
---|---|
date | Thu, 31 Jan 2013 02:18:31 +0400 |
parents | 2904da230022 |
children | 4ddb27ff4a0b |
line wrap: on
line diff
--- a/Lib/IMPL/Class/MemberInfo.pm Wed Jan 30 03:30:28 2013 +0400 +++ b/Lib/IMPL/Class/MemberInfo.pm Thu Jan 31 02:18:31 2013 +0400 @@ -6,12 +6,11 @@ __PACKAGE__->mk_accessors( qw( - Name - Access - Class - Frozen - Implementor - Attributes + name + access + class + implementor + attributes ) ); __PACKAGE__->PassThroughArgs; @@ -19,30 +18,20 @@ 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; + 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; - $this->Attributes({}) unless defined $this->Attributes; - $this->Frozen(0); - $this->Access(3) unless $this->Access; + $this->attributes({}) unless defined $this->attributes; + $this->access(3) unless $this->access; } sub Implement { my ($this) = @_; - $this->Implementor->Make($this); - $this->Frozen(1); - $this->Class->set_meta($this); + $this->implementor->Make($this); + $this->class->set_meta($this); return; } -sub access { - goto &Access; -} - -sub name { - goto &Name; -} - 1; __END__ @@ -64,32 +53,26 @@ =over -=item C<[get,set] Name> +=item C<[get,set] name> Имя члена. -=item C<[get,set] Access> +=item C<[get,set] access> Default public. Атрибут доступа ( public | private | protected ) -=item C<[get,set] Class> +=item C<[get,set] class> Класс владелец -=item C<[get,set] Frozen> - -Флаг невозможности внесения изменений - -=item C<[get,set] Attributes> +=item C<[get,set] attributes> Дополнительные атрибуты =item C<Implement()> -Устанавливает C<Frozen> в C<1>, добавляет в метаданные класса. - При реализации собственного субкласса, данный метод может быть переопределен для реализации дополнительной обработки (например, создание методов доступа для свойств).