2674e600a2ef463f48d3107b0d7159d922a90428
[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     use SQL::Translator::Types qw(Schema);
6
7     has 'schema' => (
8         is => 'rw',
9         isa => Schema,
10         weak_ref => 1,
11     );
12     
13     has 'name' => (
14         is => 'rw',
15         isa => Str,
16         required => 1
17     );
18     
19     has 'sql' => (
20         is => 'rw',
21         isa => Str,
22         required => 1
23     );
24     
25     has '_parameters' => (
26         traits => ['Array'],
27         isa => ArrayRef,
28         handles => {
29             _parameters           => 'elements',
30             add_parameter         => 'push',
31             remove_last_parameter => 'pop',
32         },
33         default => sub { [] },
34
35     );
36     
37     has 'owner' => (
38         is => 'rw',
39         isa => Str,
40         required => 1
41     );
42
43     multi method parameters(Str $parameter) { $self->add_parameter($parameter) }
44     multi method parameters(ArrayRef $parameter) { $self->add_parameter($parameter) }
45     multi method parameters { $self->_parameters }
46 }