view Lib/IMPL/Class/Member.pm @ 263:0f59b2de72af

*fixed IMPL::DOM::Schema circular module references *modified IMPL::Object::Singleton, added auto-activation *code cleanups, docs
author sergey
date Wed, 09 Jan 2013 05:17:44 +0400
parents 431db7034a88
children 6253872024a4
line wrap: on
line source

package IMPL::Class::Member;
use strict;
use parent qw(Exporter);
our @EXPORT = qw(virtual public private protected);

use IMPL::Class::Meta;
require IMPL::Class::MemberInfo;

#TODO: remove
use constant {
    MOD_PUBLIC => 1,
    MOD_PROTECTED => 2,
    MOD_PRIVATE => 3
};

sub virtual($) {
    $_[0]->Virtual(1);
    $_[0];
}

sub public($) {
    $_[0]->Access(MOD_PUBLIC);
    $_[0]->Implement;
    $_[0];
}

sub private($) {
    $_[0]->Access(MOD_PRIVATE);
    $_[0]->Implement;
    $_[0];
}

sub protected($) {
    $_[0]->Access(MOD_PROTECTED);
    $_[0]->Implement;
    $_[0];
}
1;