Scroll to navigation

Class::MOP::Method::Accessor(3pm) User Contributed Perl Documentation Class::MOP::Method::Accessor(3pm)

NAME

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

VERSION

version 2.0603

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.

AUTHOR

Moose is maintained by the Moose Cabal, along with the help of many contributors. See "CABAL" in Moose and "CONTRIBUTORS" in Moose for details.

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Infinity Interactive, Inc..
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
2012-06-28 perl v5.14.2