view Lib/IMPL/Class/Property/Accessor.pm @ 276:8a5da17d7ef9

*IMPL::Class refactoring property definition mechanism (incomplete).
author sergey
date Thu, 31 Jan 2013 17:37:44 +0400
parents 6253872024a4
children
line wrap: on
line source

package IMPL::Class::Property::Accessor;
use strict;
use parent qw(IMPL::Class::Property::Base);

sub factoryParams {
    $_[0]->SUPER::factoryParams, qw($field);
}

sub RemapFactoryParams {
    my ($self,$propInfo) = @_;
    
    return $self->SUPER::RemapFactoryParams($propInfo),$propInfo->name;
}

sub GenerateGet {
    'return $this->get($field);';
}

sub GenerateSet {
    'return $this->set($field,@_);';
}

sub GenerateSetList {
    'my $val = IMPL::Object::List->new( (@_ == 1 and UNIVERSAL::isa($_[0], \'ARRAY\') ) ? $_[0] : [@_] );
    $this->set($field,$val);    
    return(    wantarray ?    @{ $val } : $val );';
}

sub GenerateGetList {
    'my $val = $this->get($field);
    $this->set($field,$val = IMPL::Object::List->new()) unless $val;
    return(    wantarray ?    @{ $val    } : $val );';
}

1;