2 package Class::MOP::Method::Generated;
10 use base 'Class::MOP::Method';
15 confess __PACKAGE__ . " is an abstract base class, you must provide a constructor.";
18 sub _initialize_body {
19 confess "No body to initialize, " . __PACKAGE__ . " is an abstract base class";
22 sub _generate_description {
23 my ( $self, $context ) = @_;
24 $context ||= $self->definition_context;
26 my $desc = "generated method";
27 my $origin = "unknown origin";
29 if (defined $context) {
30 if (defined $context->{description}) {
31 $desc = $context->{description};
34 if (defined $context->{file} || defined $context->{line}) {
35 $origin = "defined at "
36 . (defined $context->{file}
37 ? $context->{file} : "<unknown file>")
39 . (defined $context->{line}
40 ? $context->{line} : "<unknown line>");
44 return "$desc ($origin)";
48 my ( $self, @args ) = @_;
49 unshift @args, 'source' if @args % 2;
52 my $context = delete $args{context};
53 my $environment = $self->can('_eval_environment')
54 ? $self->_eval_environment
58 environment => $environment,
59 description => $self->_generate_description($context),
66 # ABSTRACT: Abstract base class for generated methods
74 This is a C<Class::MOP::Method> subclass which is subclassed by
75 C<Class::MOP::Method::Accessor> and
76 C<Class::MOP::Method::Constructor>.
78 It is not intended to be used directly.