Mercurial > pub > Impl
comparison Lib/IMPL/Class/MemberInfo.pm @ 163:6ce1f052b90a
temp commit
| author | wizard |
|---|---|
| date | Tue, 15 Mar 2011 02:32:42 +0300 |
| parents | 44977efed303 |
| children | 76515373dac0 |
comparison
equal
deleted
inserted
replaced
| 162:39c8788eded5 | 163:6ce1f052b90a |
|---|---|
| 1 package IMPL::Class::MemberInfo; | 1 package IMPL::Class::MemberInfo; |
| 2 use strict; | 2 use strict; |
| 3 use IMPL::_core::version; | |
| 3 use base qw(IMPL::Object::Accessor); | 4 use base qw(IMPL::Object::Accessor); |
| 4 | 5 |
| 5 require IMPL::Exception; | 6 require IMPL::Exception; |
| 6 require IMPL::Class::Member; | 7 require IMPL::Class::Member; |
| 7 | 8 |
| 36 $this->Frozen(1); | 37 $this->Frozen(1); |
| 37 $this->Class->set_meta($this); | 38 $this->Class->set_meta($this); |
| 38 return; | 39 return; |
| 39 } | 40 } |
| 40 | 41 |
| 41 #TODO: Debug version | 42 1; |
| 42 #sub set { | |
| 43 # my $this = shift; | |
| 44 # if ($this->Frozen) { | |
| 45 # die new IMPL::Exception('The member information is frozen', $this->Name); | |
| 46 # } | |
| 47 # $this->SUPER::set(@_); | |
| 48 #} | |
| 49 | 43 |
| 50 1; | 44 __END__ |
| 45 | |
| 46 =pod | |
| 47 | |
| 48 =head1 NAME | |
| 49 | |
| 50 C<IMPL::Class::MemberInfo> - информация о члене класса. | |
| 51 | |
| 52 =head1 DESCRIPTION | |
| 53 | |
| 54 Данный класс является базовым для таких классов как C<IMPL::Class::PropertyInfo>, C<IMPL::Class::MethodInfo> и | |
| 55 предназначен для хренения метаданных. | |
| 56 | |
| 57 Данный класс наследуется от C<IMPL::Object::Accessor> и не содержит в себе метаданных о своих членах. | |
| 58 | |
| 59 =head1 MEMBERS | |
| 60 | |
| 61 =over | |
| 62 | |
| 63 =item C<[get,set] Name> | |
| 64 | |
| 65 Имя члена. | |
| 66 | |
| 67 =item C<[get,set] Access> | |
| 68 | |
| 69 Default public. | |
| 70 | |
| 71 Атрибут доступа ( public | private | protected ) | |
| 72 | |
| 73 =item C<[get,set] Virtual> | |
| 74 | |
| 75 Default false. | |
| 76 | |
| 77 Флаг виртуальности. | |
| 78 | |
| 79 =item C<[get,set] Class> | |
| 80 | |
| 81 Класс владелец | |
| 82 | |
| 83 =item C<[get,set] Frozen> | |
| 84 | |
| 85 Флаг невозможности внесения изменений | |
| 86 | |
| 87 =item C<[get,set] Attributes> | |
| 88 | |
| 89 Дополнительные атрибуты | |
| 90 | |
| 91 =item C<Implement()> | |
| 92 | |
| 93 Устанавливает C<Frozen> в C<1>, добавляет в метаданные класса. | |
| 94 | |
| 95 При реализации собственного субкласса, данный метод может быть переопределен для | |
| 96 реализации дополнительной обработки (например, создание методов доступа для свойств). | |
| 97 | |
| 98 =back | |
| 99 | |
| 100 =cut |
