49
|
1 package IMPL::Class::MemberInfo;
|
|
2 use strict;
|
165
|
3 use parent qw(IMPL::Object::Accessor);
|
49
|
4
|
|
5 require IMPL::Exception;
|
|
6
|
|
7 __PACKAGE__->mk_accessors(
|
|
8 qw(
|
275
|
9 name
|
|
10 access
|
|
11 class
|
|
12 implementor
|
|
13 attributes
|
49
|
14 )
|
|
15 );
|
|
16 __PACKAGE__->PassThroughArgs;
|
|
17
|
|
18 sub CTOR {
|
|
19 my $this = shift;
|
|
20
|
275
|
21 die new IMPL::Exception('The name is required for the member') unless $this->name;
|
|
22 die new IMPL::Exception('The class is required for the member') unless $this->class;
|
49
|
23
|
275
|
24 $this->attributes({}) unless defined $this->attributes;
|
|
25 $this->access(3) unless $this->access;
|
49
|
26 }
|
|
27
|
|
28 sub Implement {
|
|
29 my ($this) = @_;
|
275
|
30 $this->implementor->Make($this);
|
|
31 $this->class->set_meta($this);
|
49
|
32 return;
|
|
33 }
|
|
34
|
163
|
35 1;
|
|
36
|
|
37 __END__
|
|
38
|
|
39 =pod
|
|
40
|
|
41 =head1 NAME
|
|
42
|
180
|
43 C<IMPL::Class::MemberInfo> - информация о члене класса.
|
163
|
44
|
|
45 =head1 DESCRIPTION
|
|
46
|
180
|
47 Данный класс является базовым для таких классов как C<IMPL::Class::PropertyInfo>, C<IMPL::Class::MethodInfo> и
|
|
48 предназначен для хренения метаданных.
|
163
|
49
|
180
|
50 Данный класс наследуется от C<IMPL::Object::Accessor> и не содержит в себе метаданных о своих членах.
|
163
|
51
|
|
52 =head1 MEMBERS
|
|
53
|
|
54 =over
|
|
55
|
275
|
56 =item C<[get,set] name>
|
163
|
57
|
180
|
58 Имя члена.
|
163
|
59
|
275
|
60 =item C<[get,set] access>
|
163
|
61
|
|
62 Default public.
|
49
|
63
|
180
|
64 Атрибут доступа ( public | private | protected )
|
163
|
65
|
275
|
66 =item C<[get,set] class>
|
163
|
67
|
180
|
68 Класс владелец
|
163
|
69
|
275
|
70 =item C<[get,set] attributes>
|
163
|
71
|
180
|
72 Дополнительные атрибуты
|
163
|
73
|
|
74 =item C<Implement()>
|
|
75
|
180
|
76 При реализации собственного субкласса, данный метод может быть переопределен для
|
|
77 реализации дополнительной обработки (например, создание методов доступа для свойств).
|
163
|
78
|
|
79 =back
|
|
80
|
|
81 =cut
|