view Lib/IMPL/Class/Property.pm @ 165:76515373dac0

Added Class::Template, Rewritten SQL::Schema 'use parent' directive instead of 'use base'
author wizard
date Sat, 23 Apr 2011 23:06:48 +0400
parents 0f3e369553bd
children 6253872024a4
line wrap: on
line source

package IMPL::Class::Property;
use strict;
use parent 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;