move to MooseX::Declare
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Object / Procedure.pm
1 use MooseX::Declare;
2 class SQL::Translator::Object::Procedure {
3     use namespace::autoclean;
4     use Moose;
5     use MooseX::Types::Moose qw(HashRef Int Maybe Str);
6     use MooseX::AttributeHelpers;
7     use SQL::Translator::Types qw();
8     use aliased 'SQL::Translator::Object::Schema';
9     extends 'SQL::Translator::Object';
10     
11     has 'name' => (
12         is => 'rw',
13         isa => Str,
14         required => 1
15     );
16     
17     has 'contents' => (
18         is => 'rw',
19         isa => Str,
20         required => 1
21     );
22     
23     has 'parameters' => (
24         metaclass => 'Collection::Hash',
25         is => 'rw',
26         isa => Maybe[HashRef[Int|Str]],
27         provides => {
28             exists => 'exists_parameter',
29             keys   => 'parameter_ids',
30             get    => 'get_parameter',
31             set    => 'set_parameter',
32         },
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     );
45     
46     has 'schema' => (
47         is => 'rw',
48         isa => Schema,
49         required => 1,
50         default => sub { Schema->new }
51     );
52 }