migrate from MXAH to Native::Trait
[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         is => 'rw',
21         isa => ArrayRef,
22         handles => {
23             add_parameter         => 'push',
24             remove_last_parameter => 'pop',
25         },
26         default => sub { [] },
27         auto_deref => 1,
28
29     );
30     
31     has 'owner' => (
32         is => 'rw',
33         isa => Str,
34         required => 1
35     );
36
37     multi method parameters(Str $parameter) { $self->add_parameter($parameter) }
38     multi method parameters(ArrayRef $parameter) { $self->add_parameter($parameter) }
39     multi method parameters(Any $) { wantarray ? @{$self->_parameters} : $self->_parameters }
40 }