1350b5cf602dc72ad9a6fa16ee061004647f34f3
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Object / Procedure.pm
1 package SQL::Translator::Object::Procedure;
2 use namespace::autoclean;
3 use Moose;
4 use MooseX::Types::Moose qw(HashRef Int Maybe Str);
5 use MooseX::AttributeHelpers;
6 use SQL::Translator::Types qw();
7 use SQL::Translator::Object::Schema;
8 extends 'SQL::Translator::Object';
9
10 has 'name' => (
11   is => 'rw',
12   isa => Str,
13   required => 1
14 );
15
16 has 'contents' => (
17   is => 'rw',
18   isa => Str,
19   required => 1
20 );
21
22 has 'parameters' => (
23   metaclass => 'Collection::Hash',
24   is => 'rw',
25   isa => Maybe[HashRef[Int|Str]],
26   provides => {
27     exists => 'exists_parameter',
28     keys   => 'parameter_ids',
29     get    => 'get_parameter',
30     set    => 'set_parameter',
31   },
32   required => 0
33 );
34
35 has 'owner' => (
36   is => 'rw',
37   isa => Str,
38   required => 1
39 );
40
41 has 'comments' => (
42   is => 'rw',
43   isa => Str,
44   required => 0
45 );
46
47 has 'schema' => (
48   is => 'rw',
49   isa => Schema,
50   required => 1,
51   default => sub { SQL::Translator::Object::Schema->new }
52 );
53
54 __PACKAGE__->meta->make_immutable;
55
56 1;