Commit | Line | Data |
4f4fd192 |
1 | use MooseX::Declare; |
ebf2721d |
2 | class SQL::Translator::Object::Procedure extends SQL::Translator::Object { |
1c607f61 |
3 | use MooseX::Types::Moose qw(ArrayRef Str); |
0c86c13a |
4 | use MooseX::MultiMethods; |
f228f068 |
5 | use SQL::Translator::Types qw(Schema); |
6 | |
7 | has 'schema' => ( |
8 | is => 'rw', |
9 | isa => Schema, |
10 | weak_ref => 1, |
11 | ); |
4f4fd192 |
12 | |
13 | has 'name' => ( |
14 | is => 'rw', |
15 | isa => Str, |
16 | required => 1 |
17 | ); |
18 | |
ddd6c19a |
19 | has 'sql' => ( |
4f4fd192 |
20 | is => 'rw', |
21 | isa => Str, |
ddd6c19a |
22 | required => 1 |
4f4fd192 |
23 | ); |
24 | |
0c86c13a |
25 | has '_parameters' => ( |
28bd628e |
26 | traits => ['Array'], |
579c2829 |
27 | isa => ArrayRef, |
28bd628e |
28 | handles => { |
92f89ed0 |
29 | _parameters => 'elements', |
28bd628e |
30 | add_parameter => 'push', |
31 | remove_last_parameter => 'pop', |
0c86c13a |
32 | }, |
33 | default => sub { [] }, |
0c86c13a |
34 | |
4f4fd192 |
35 | ); |
36 | |
37 | has 'owner' => ( |
38 | is => 'rw', |
39 | isa => Str, |
48c23452 |
40 | default => 'owner', |
4f4fd192 |
41 | required => 1 |
42 | ); |
0c86c13a |
43 | |
44 | multi method parameters(Str $parameter) { $self->add_parameter($parameter) } |
45 | multi method parameters(ArrayRef $parameter) { $self->add_parameter($parameter) } |
5b7d1de7 |
46 | multi method parameters { $self->_parameters } |
4f4fd192 |
47 | } |