diff Lib/IMPL/Class/Property.pm @ 0:03e58a454b20

Создан репозитарий
author Sergey
date Tue, 14 Jul 2009 12:54:37 +0400
parents
children 16ada169ca75
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Lib/IMPL/Class/Property.pm	Tue Jul 14 12:54:37 2009 +0400
@@ -0,0 +1,35 @@
+package IMPL::Class::Property;
+use strict;
+use base qw(Exporter);
+BEGIN {
+    our @EXPORT = qw(property prop_get prop_set owner_set prop_none prop_all prop_list CreateProperty);
+}
+
+require IMPL::Class::Member;
+require IMPL::Class::PropertyInfo;
+
+sub import {
+    __PACKAGE__->export_to_level(1,@_);
+    IMPL::Class::Member->export_to_level(1,@_);
+}
+
+sub prop_get { 1 };
+sub prop_set { 2 };
+sub owner_set { 2 };
+sub prop_none { 0 };
+sub prop_all { 3 };
+sub prop_list { 4 };
+
+sub property($$;$) {
+    my ($propName,$mutators,$attributes) = @_;
+    my $Info = new IMPL::Class::PropertyInfo( {Name => $propName, Mutators => $mutators, Class => scalar(caller), Attributes => $attributes } );
+    return $Info;
+}
+
+sub CreateProperty {
+    my ($class,$propName,$mutators,$attributes) = @_;
+    my $Info = new IMPL::Class::PropertyInfo( {Name => $propName, Mutators => $mutators, Class => $class, Attributes => $attributes} );
+    return $Info;
+};
+
+1;
\ No newline at end of file