annotate lib/IMPL/Class/TypeInfo.pm @ 413:af8d359ee4cc ref20150831

working on di container
author cin
date Thu, 24 Sep 2015 12:19:30 +0300
parents ee36115f6a34
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
411
cin
parents:
diff changeset
1 package IMPL::Class::TypeInfo;
cin
parents:
diff changeset
2 use strict;
cin
parents:
diff changeset
3 use mro;
cin
parents:
diff changeset
4
cin
parents:
diff changeset
5 require v5.10;
cin
parents:
diff changeset
6
cin
parents:
diff changeset
7 use IMPL::declare {
cin
parents:
diff changeset
8 require => {
cin
parents:
diff changeset
9 PropertyInfo => 'IMPL::Class::PropertyInfo'
cin
parents:
diff changeset
10 },
cin
parents:
diff changeset
11 base => [
cin
parents:
diff changeset
12 'IMPL::Object' => undef
cin
parents:
diff changeset
13 ],
cin
parents:
diff changeset
14 props => [
cin
parents:
diff changeset
15 name => 'r',
cin
parents:
diff changeset
16 _methods => 'rw',
cin
parents:
diff changeset
17 _props => 'rw',
cin
parents:
diff changeset
18 _type => 'rw'
cin
parents:
diff changeset
19 ]
cin
parents:
diff changeset
20 };
cin
parents:
diff changeset
21
cin
parents:
diff changeset
22 sub GetProperties {
cin
parents:
diff changeset
23 my $this = shift;
cin
parents:
diff changeset
24
cin
parents:
diff changeset
25 my $cache = $this->_props;
cin
parents:
diff changeset
26 unless ($cache) {
cin
parents:
diff changeset
27 $cache = $this->_type->GetMeta( PropertyInfo, undef, 1 );
cin
parents:
diff changeset
28 $this->_props($cache);
cin
parents:
diff changeset
29 }
cin
parents:
diff changeset
30 return $cache;
cin
parents:
diff changeset
31 }
cin
parents:
diff changeset
32
cin
parents:
diff changeset
33 1;