diff Lib/IMPL/Class/PropertyInfo.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/PropertyInfo.pm	Fri Feb 01 16:37:59 2013 +0400
+++ b/Lib/IMPL/Class/PropertyInfo.pm	Mon Feb 04 02:10:37 2013 +0400
@@ -1,44 +1,23 @@
 package IMPL::Class::PropertyInfo;
 use strict;
 
-use parent qw(IMPL::Class::MemberInfo);
+BEGIN {    
+    our @ISA = qw(IMPL::Class::MemberInfo);
+}
+
+require IMPL::Class::MemberInfo;
 
 our %CTOR = ( 'IMPL::Class::MemberInfo' => '@_' );
 
-__PACKAGE__->mk_accessors(qw(type mutators canGet canSet ownerSet isList));
-
-my %LoadedModules;
-
-sub CTOR {
-    my $this = shift;
-    
-    if ( my $type = $this->attributes ? delete $this->attributes->{type} : undef ) {
-        $this->type($type);
-    }
-    
-    $this->mutators(0) unless defined $this->mutators;
-}
-
-sub implementor {
-    my $this = shift;
-        
-    if (@_) {
-        $this->SUPER::implementor(@_);
-    } else {
-        my $implementor = $this->SUPER::implementor;
-        return $implementor if $implementor;
-        
-        $implementor = $this->SelectImplementor();
-        
-        $this->implementor($implementor);
-    }
-    
-}
-
-sub SelectImplementor {
-    eval {$_[0]->class->_PropertyImplementor} or die new IMPL::Exception('Can\'t find a property implementor for the specified class',$_[0]->Class);
-}
-
+__PACKAGE__->mk_accessors(
+    qw(
+        type
+        getter
+        setter
+        ownerSet
+        isList
+    )
+);
 1;
 
 __END__