formatting changes
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Object / Table.pm
index ac42c6e..4b795d5 100644 (file)
@@ -1,9 +1,44 @@
 package SQL::Translator::Object::Table;
 use Moose;
+use MooseX::Types::Moose qw(HashRef Str);
+use MooseX::AttributeHelpers;
+#use MooseX::Types::Set::Object;
+use SQL::Translator::Types qw(Column Constraint Index Schema);
+use SQL::Translator::Object::Schema;
+extends 'SQL::Translator::Object';
 
-has 'name' => (is => 'ro', isa => 'Str', required => 1);
-has 'columns' => (is => 'ro', isa => 'ArrayRef[SQL::Translator::Object::Column]', required => 1);
-has 'indexes' => (is => 'ro', isa => 'ArrayRef[SQL::Translator::Object::Index]', required => 0);
-has 'constraints' => (is => 'ro', isa => 'ArrayRef[SQL::Translator::Object::Constraint]', required => 0);
+has 'name' => (
+  is => 'ro',
+  isa => Str,
+  required => 1
+);
+
+has 'columns' => (
+  metaclass => 'Collection::Hash',
+  is => 'rw',
+  isa => HashRef[Column],
+  required => 1
+);
+
+has 'indexes' => (
+  metaclass => 'Collection::Hash',
+  is => 'rw',
+  isa => HashRef[Index],
+  required => 0
+);
+
+has 'constraints' => (
+  metaclass => 'Collection::Hash',
+  is => 'rw',
+  isa => HashRef[Constraint],
+  required => 0
+);
+
+has 'schema' => (
+  is => 'ro',
+  isa => Schema,
+  required => 1,
+  default => sub { SQL::Translator::Object::Schema->new }
+);
 
 1;