quasi-factory
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Object / Schema.pm
CommitLineData
c5051351 1package SQL::Translator::Object::Schema;
2use Moose;
109263d0 3use MooseX::Types::Moose qw(HashRef Str);
e157d782 4use MooseX::AttributeHelpers;
c0e05758 5use SQL::Translator::Types qw(Procedure Table View);
cc73c25e 6extends 'SQL::Translator::Object';
c5051351 7
109263d0 8has 'name' => (
9 is => 'rw',
10 isa => Str,
11 required => 1,
12 default => '__DEFAULT__'
13);
14
15has 'tables' => (
e157d782 16 metaclass => 'Collection::Hash',
109263d0 17 is => 'rw',
18 isa => HashRef[Table],
e157d782 19 provides => {
20 exists => 'exists_table',
21 keys => 'table_ids',
22 get => 'get_table',
23 set => 'set_table',
24 },
109263d0 25 required => 0
26);
27
28has 'views' => (
e157d782 29 metaclass => 'Collection::Hash',
109263d0 30 is => 'rw',
31 isa => HashRef[View],
e157d782 32 provides => {
33 exists => 'exists_view',
34 keys => 'view_ids',
35 get => 'get_view',
36 set => 'set_view',
37 },
109263d0 38 required => 0
39);
40
41has 'procedures' => (
e157d782 42 metaclass => 'Collection::Hash',
109263d0 43 is => 'rw',
44 isa => HashRef[Procedure],
e157d782 45 provides => {
46 exists => 'exists_procedure',
47 keys => 'procedure_ids',
48 get => 'get_procedure',
49 set => 'set_procedure',
50 },
109263d0 51 required => 0
52);
c5051351 53
541;