006f37a8be18a7f6bf952a1966f67b09832e6d55
[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::AttributeHelpers;
5     use MooseX::MultiMethods;
6     
7     has 'name' => (
8         is => 'rw',
9         isa => Str,
10         required => 1
11     );
12     
13     has 'sql' => (
14         is => 'rw',
15         isa => Str,
16         required => 1
17     );
18     
19     has '_parameters' => (
20         metaclass => 'Collection::Array',
21         is => 'rw',
22         isa => ArrayRef,
23         provides => {
24             push => 'add_parameter',
25             pop  => 'remove_last_parameter',
26         },
27         default => sub { [] },
28         auto_deref => 1,
29
30     );
31     
32     has 'owner' => (
33         is => 'rw',
34         isa => Str,
35         required => 1
36     );
37
38     multi method parameters(Str $parameter) { $self->add_parameter($parameter) }
39     multi method parameters(ArrayRef $parameter) { $self->add_parameter($parameter) }
40     multi method parameters(Any $) { wantarray ? @{$self->_parameters} : $self->_parameters }
41 }