Mercurial > pub > Impl
comparison Lib/IMPL/Class/Property.pm @ 0:03e58a454b20
Создан репозитарий
| author | Sergey |
|---|---|
| date | Tue, 14 Jul 2009 12:54:37 +0400 |
| parents | |
| children | 16ada169ca75 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:03e58a454b20 |
|---|---|
| 1 package IMPL::Class::Property; | |
| 2 use strict; | |
| 3 use base qw(Exporter); | |
| 4 BEGIN { | |
| 5 our @EXPORT = qw(property prop_get prop_set owner_set prop_none prop_all prop_list CreateProperty); | |
| 6 } | |
| 7 | |
| 8 require IMPL::Class::Member; | |
| 9 require IMPL::Class::PropertyInfo; | |
| 10 | |
| 11 sub import { | |
| 12 __PACKAGE__->export_to_level(1,@_); | |
| 13 IMPL::Class::Member->export_to_level(1,@_); | |
| 14 } | |
| 15 | |
| 16 sub prop_get { 1 }; | |
| 17 sub prop_set { 2 }; | |
| 18 sub owner_set { 2 }; | |
| 19 sub prop_none { 0 }; | |
| 20 sub prop_all { 3 }; | |
| 21 sub prop_list { 4 }; | |
| 22 | |
| 23 sub property($$;$) { | |
| 24 my ($propName,$mutators,$attributes) = @_; | |
| 25 my $Info = new IMPL::Class::PropertyInfo( {Name => $propName, Mutators => $mutators, Class => scalar(caller), Attributes => $attributes } ); | |
| 26 return $Info; | |
| 27 } | |
| 28 | |
| 29 sub CreateProperty { | |
| 30 my ($class,$propName,$mutators,$attributes) = @_; | |
| 31 my $Info = new IMPL::Class::PropertyInfo( {Name => $propName, Mutators => $mutators, Class => $class, Attributes => $attributes} ); | |
| 32 return $Info; | |
| 33 }; | |
| 34 | |
| 35 1; |
