diff Lib/IMPL/Class/MemberInfo.pm @ 278:4ddb27ff4a0b

core refactoring
author cin
date Mon, 04 Feb 2013 02:10:37 +0400
parents 6253872024a4
children
line wrap: on
line diff
--- a/Lib/IMPL/Class/MemberInfo.pm	Fri Feb 01 16:37:59 2013 +0400
+++ b/Lib/IMPL/Class/MemberInfo.pm	Mon Feb 04 02:10:37 2013 +0400
@@ -1,23 +1,33 @@
 package IMPL::Class::MemberInfo;
 use strict;
-use parent qw(IMPL::Object::Accessor);
 
+use IMPL::Const qw(:prop);
+BEGIN {
+    our @ISA = qw(IMPL::Object::Accessor);
+}
+
+require IMPL::Object::Accessor;
 require IMPL::Exception;
 
+# использовать ClassPropertyImplementor не получится, поскольку он будет
+# создавать экземпляры PropertyInfo, который не доописан (в нем не определены
+# члены)
 __PACKAGE__->mk_accessors(
     qw(
         name
         access
         class
-        implementor
         attributes
     )
 );
-__PACKAGE__->PassThroughArgs;
+
+our %CTOR = (
+    'IMPL::Object::Accessor' => undef
+);
 
 sub CTOR {
     my $this = shift;
-    
+
     die new IMPL::Exception('The name is required for the member') unless $this->name;
     die new IMPL::Exception('The class is required for the member') unless $this->class;
     
@@ -25,13 +35,6 @@
     $this->access(3) unless $this->access;
 }
 
-sub Implement {
-    my ($this) = @_;
-    $this->implementor->Make($this);
-    $this->class->set_meta($this);
-    return;
-}
-
 1;
 
 __END__