use $pdata instead of $tdata for procedure info
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Object / Index.pm
CommitLineData
4f4fd192 1use MooseX::Declare;
ebf2721d 2class SQL::Translator::Object::Index extends SQL::Translator::Object {
1c607f61 3 use MooseX::Types::Moose qw(HashRef Str);
52137c8d 4 use MooseX::MultiMethods;
f49a2a49 5 use SQL::Translator::Types qw(Column Table);
f49a2a49 6
7 has 'table' => (
8 is => 'rw',
9 isa => Table,
f49a2a49 10 weak_ref => 1,
11 );
4f4fd192 12
13 has 'name' => (
14 is => 'rw',
15 isa => Str,
16 required => 1
17 );
2850baeb 18
4f4fd192 19 has 'columns' => (
28bd628e 20 traits => ['Hash'],
4f4fd192 21 is => 'rw',
22 isa => HashRef[Column],
28bd628e 23 handles => {
24 exists_column => 'exists',
25 column_ids => 'keys',
26 get_columns => 'values',
27 get_column => 'get',
28 add_column => 'set',
452c34e6 29 clear_columns => 'clear',
4f4fd192 30 },
31 default => sub { my %hash = (); tie %hash, 'Tie::IxHash'; return \%hash },
32 );
2850baeb 33
4f4fd192 34 has 'type' => (
35 is => 'rw',
36 isa => Str,
7e6d96f8 37 required => 1,
38 default => 'NORMAL',
4f4fd192 39 );
65061e1b 40
51700db2 41 around add_column(Column $column) { $self->$orig($column->name, $column) }
7e6d96f8 42
43 method is_valid { $self->table && scalar $self->get_columns ? 1 : undef }
4f4fd192 44}