Class::MOP::Method::Accessor(3)

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

VERSION
version 2.2012

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.little@iinteractive.com>

•   Dave Rolsky <autarch@urth.org>

•   Jesse Luehrs <doy@tozt.net>

•   Shawn M Moore <code@sartak.org>

•   יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>

•   Karen Etheridge <ether@cpan.org>

•   Florian Ragwitz <rafl@debian.org>

•   Hans Dieter Pearcey <hdp@weftsoar.net>

•   Chris Prather <chris@prather.org>

•   Matt S Trout <mst@shadowcat.co.uk>

COPYRIGHT AND LICENSE
This software is copyright (c) 2006 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.