Mercurial > pub > Impl
comparison Lib/IMPL/Class/MemberInfo.pm @ 59:0f3e369553bd
Rewritten property implementation (probably become slower but more flexible)
Configuration infrastructure in progress (in the aspect of the lazy activation)
Initial concept for the code generator
author | wizard |
---|---|
date | Tue, 09 Mar 2010 02:50:45 +0300 |
parents | 16ada169ca75 |
children | 44977efed303 |
comparison
equal
deleted
inserted
replaced
58:a35b60b16a99 | 59:0f3e369553bd |
---|---|
22 my $this = shift; | 22 my $this = shift; |
23 | 23 |
24 die new IMPL::Exception('The name is required for the member') unless $this->Name; | 24 die new IMPL::Exception('The name is required for the member') unless $this->Name; |
25 die new IMPL::Exception('The class is required for the member') unless $this->Class; | 25 die new IMPL::Exception('The class is required for the member') unless $this->Class; |
26 | 26 |
27 $this->Attributes({}) unless defined $this->Attributes; | |
27 $this->Frozen(0); | 28 $this->Frozen(0); |
28 $this->Virtual(0) unless defined $this->Virtual; | 29 $this->Virtual(0) unless defined $this->Virtual; |
29 $this->Access(3) unless $this->Access; | 30 $this->Access(3) unless $this->Access; |
30 } | 31 } |
31 | 32 |
38 } | 39 } |
39 | 40 |
40 sub set { | 41 sub set { |
41 my $this = shift; | 42 my $this = shift; |
42 if ($this->Frozen) { | 43 if ($this->Frozen) { |
43 die new IMPL::Exception('The member information can\'t be modified', $this->Name); | 44 die new IMPL::Exception('The member information is frozen', $this->Name); |
44 } | 45 } |
45 $this->SUPER::set(@_); | 46 $this->SUPER::set(@_); |
46 } | 47 } |
47 | 48 |
48 1; | 49 1; |