implement 'use aliased'
[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 aliased '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 { Schema->new }
52 );
53
54 __PACKAGE__->meta->make_immutable;
55
56 1;