view Lib/IMPL/Class/Property.pm @ 60:b0c068da93ac

Lazy activation for the configuration objects (final concept) small fixes
author wizard
date Tue, 09 Mar 2010 19:47:39 +0300
parents 0f3e369553bd
children 76515373dac0
line wrap: on
line source

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 { 10 };
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;