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


Class-MOP documentation  | view source Contained in the Class-MOP distribution.

Index


NAME

Top

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

SYNOPSIS

Top

    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

Top

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

Top

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

Top

Stevan Little <stevan@iinteractive.com>

COPYRIGHT AND LICENSE

Top


Class-MOP documentation  | view source Contained in the Class-MOP distribution.