Class::MOP::Method::Accessor.3pm

Langue: en

Version: 2010-06-05 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Class::MOP::Method::Accessor - Method Meta Object for accessors

SYNOPSIS

     use Class::MOP::Method::Accessor;
 
     my $reader = Class::MOP::Method::Accessor->new(
         attribute     => $attribute,
         is_inline     => 1,
         accessor_type => 'reader',
     );
 
     $reader->body->execute($instance); # call the reader method
 
 

DESCRIPTION

This is a subclass of <Class::MOP::Method> which is used by "Class::MOP::Attribute" to generate accessor code. It handles generation of readers, writers, predicates and clearers. For each type of method, it can either create a subroutine reference, or actually inline code by generating a string and "eval"'ing it.

METHODS

Class::MOP::Method::Accessor->new(%options)
This returns a new "Class::MOP::Method::Accessor" based on the %options provided.
*
attribute

This is the "Class::MOP::Attribute" for which accessors are being generated. This option is required.

*
accessor_type

This is a string which should be one of ``reader'', ``writer'', ``accessor'', ``predicate'', or ``clearer''. This is the type of method being generated. This option is required.

*
is_inline

This indicates whether or not the accessor should be inlined. This defaults to false.

*
name

The method name (without a package name). This is required.

*
package_name

The package name for the method. This is required.

$metamethod->accessor_type
Returns the accessor type which was passed to "new".
$metamethod->is_inline
Returns a boolean indicating whether or not the accessor is inlined.
$metamethod->associated_attribute
This returns the Class::MOP::Attribute object which was passed to "new".
$metamethod->body
The method itself is generated when the accessor object is constructed.

AUTHORS

Stevan Little <stevan@iinteractive.com> Copyright 2006-2010 by Infinity Interactive, Inc.

<http://www.iinteractive.com>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.