no more auto_deref
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Object / Procedure.pm
1 use MooseX::Declare;
2 class SQL::Translator::Object::Procedure extends SQL::Translator::Object {
3     use MooseX::Types::Moose qw(ArrayRef Str);
4     use MooseX::MultiMethods;
5     
6     has 'name' => (
7         is => 'rw',
8         isa => Str,
9         required => 1
10     );
11     
12     has 'sql' => (
13         is => 'rw',
14         isa => Str,
15         required => 1
16     );
17     
18     has '_parameters' => (
19         traits => ['Array'],
20         isa => ArrayRef,
21         handles => {
22             _parameters           => 'elements',
23             add_parameter         => 'push',
24             remove_last_parameter => 'pop',
25         },
26         default => sub { [] },
27
28     );
29     
30     has 'owner' => (
31         is => 'rw',
32         isa => Str,
33         required => 1
34     );
35
36     multi method parameters(Str $parameter) { $self->add_parameter($parameter) }
37     multi method parameters(ArrayRef $parameter) { $self->add_parameter($parameter) }
38     multi method parameters(Any $) { wantarray ? @{$self->_parameters} : $self->_parameters }
39 }