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; |