add database attribute
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Object / Schema.pm
CommitLineData
4f4fd192 1use MooseX::Declare;
ebf2721d 2class SQL::Translator::Object::Schema extends SQL::Translator::Object {
4f4fd192 3 use MooseX::Types::Moose qw(HashRef Maybe Str);
a939ce63 4 use SQL::Translator::Types qw(Procedure Table Trigger View);
a939ce63 5
4f4fd192 6 has 'name' => (
7 is => 'rw',
8 isa => Maybe[Str],
9 required => 1,
10 default => ''
11 );
57544e0b 12
13 has 'database' => (
14 is => 'rw',
15 isa => Maybe[Str],
16 );
4f4fd192 17
18 has 'tables' => (
28bd628e 19 traits => ['Hash'],
4f4fd192 20 is => 'rw',
21 isa => HashRef[Table],
28bd628e 22 handles => {
23 exists_table => 'exists',
24 table_ids => 'keys',
25 get_tables => 'values',
26 get_table => 'get',
27 add_table => 'set',
4f4fd192 28 },
b5ce8643 29 default => sub { my %hash = (); tie %hash, 'Tie::IxHash'; return \%hash },
4f4fd192 30 );
31
32 has 'views' => (
28bd628e 33 traits => ['Hash'],
4f4fd192 34 is => 'rw',
35 isa => HashRef[View],
28bd628e 36 handles => {
37 exists_view => 'exists',
38 view_ids => 'keys',
39 get_views => 'values',
40 get_view => 'get',
41 add_view => 'set',
4f4fd192 42 },
7c120f08 43 default => sub { my %hash = (); tie %hash, 'Tie::IxHash'; return \%hash },
4f4fd192 44 );
45
46 has 'procedures' => (
28bd628e 47 traits => ['Hash'],
4f4fd192 48 is => 'rw',
49 isa => HashRef[Procedure],
28bd628e 50 handles => {
51 exists_procedure => 'exists',
52 procedure_ids => 'keys',
53 get_procedures => 'values',
54 get_procedure => 'get',
55 add_procedure => 'set',
4f4fd192 56 },
a939ce63 57 default => sub { my %hash = (); tie %hash, 'Tie::IxHash'; return \%hash },
58 );
59
60 has 'triggers' => (
28bd628e 61 traits => ['Hash'],
a939ce63 62 is => 'rw',
63 isa => HashRef[Trigger],
28bd628e 64 handles => {
65 exists_trigger => 'exists',
66 trigger_ids => 'keys',
67 get_triggers => 'values',
68 get_trigger => 'get',
69 add_trigger => 'set',
a939ce63 70 },
71 default => sub { my %hash = (); tie %hash, 'Tie::IxHash'; return \%hash },
4f4fd192 72 );
b5ce8643 73
51700db2 74 around add_table(Table $table) { $self->$orig($table->name, $table) }
75 around add_view(View $view) { $self->$orig($view->name, $view) }
76 around add_procedure(Procedure $procedure) { $self->$orig($procedure->name, $procedure) }
77 around add_trigger(Trigger $trigger) { $self->$orig($trigger->name, $trigger) }
78
b5ce8643 79 method is_valid { 1 }
b750d2f1 80
81 method order { }
82 method perform_action_when { }
83 method database_events { }
84 method fields { }
85 method on_table { }
86 method action { }
4f4fd192 87}