Mercurial > pub > Impl
comparison Lib/IMPL/Class/Property.pm @ 278:4ddb27ff4a0b
core refactoring
| author | cin |
|---|---|
| date | Mon, 04 Feb 2013 02:10:37 +0400 |
| parents | 8a5da17d7ef9 |
| children |
comparison
equal
deleted
inserted
replaced
| 277:6585464c4664 | 278:4ddb27ff4a0b |
|---|---|
| 7 } | 7 } |
| 8 | 8 |
| 9 use IMPL::lang qw(:hash); | 9 use IMPL::lang qw(:hash); |
| 10 use IMPL::Const qw(:prop); | 10 use IMPL::Const qw(:prop); |
| 11 use Carp qw(carp); | 11 use Carp qw(carp); |
| 12 require IMPL::Class::Memeber; | 12 require IMPL::Class::Member; |
| 13 | 13 |
| 14 sub import { | 14 sub import { |
| 15 __PACKAGE__->export_to_level(1,@_); | 15 __PACKAGE__->export_to_level(1,@_); |
| 16 IMPL::Class::Member->export_to_level(1,@_); | 16 IMPL::Class::Member->export_to_level(1,@_); |
| 17 } | 17 } |
| 24 sub prop_list { 4 }; | 24 sub prop_list { 4 }; |
| 25 | 25 |
| 26 sub property($$) { | 26 sub property($$) { |
| 27 my ($propName,$attributes) = @_; | 27 my ($propName,$attributes) = @_; |
| 28 | 28 |
| 29 $attributes = { | 29 my $class = caller; |
| 30 get => $attributes & PROP_GET, | 30 |
| 31 set => $attributes & PROP_SET, | |
| 32 isList => $attributes & PROP_LIST | |
| 33 } unless ref $attributes; | |
| 34 | |
| 35 return hashMerge ( | 31 return hashMerge ( |
| 36 $attributes, | 32 $class->ClassPropertyImplementor->NormalizeSpecification($attributes), |
| 37 { | 33 { |
| 38 -implementor => 'ImplementProperty', | 34 implementor => $class->ClassPropertyImplementor, |
| 39 name => $propName, | 35 name => $propName, |
| 40 class => scalar(caller), | 36 class => scalar(caller), |
| 41 } | 37 } |
| 42 ); | 38 ); |
| 43 } | 39 } |
| 44 | 40 |
| 45 sub CreateProperty { | 41 sub CreateProperty { |
| 46 my ($class,$propName,$attributes) = @_; | 42 my ($class,$propName,@attributes) = @_; |
| 47 | 43 |
| 48 carp "Using create property is deprecated, use ImplementProperty instead"; | 44 $class |
| 49 | 45 ->ClassPropertyImplementor |
| 50 $class->ImplementProperty($propName,$attributes); | 46 ->Implement( |
| 47 @attributes, | |
| 48 { | |
| 49 name => $propName, | |
| 50 class => $class, | |
| 51 } | |
| 52 ); | |
| 51 }; | 53 }; |
| 52 | 54 |
| 53 1; | 55 1; |
