X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FObject%2FProcedure.pm;h=40bf3e8a33b492702c356b3a9dae52d261799350;hb=48c234524d993b9f3ac6e141abd964a8db976439;hp=ebc4faaca1ae0c9ac7e60f31f8003484a099d358;hpb=e157d782d0fd81839c38b9f8aab0e1844c14ab9b;p=dbsrgits%2FSQL-Translator-2.0-ish.git diff --git a/lib/SQL/Translator/Object/Procedure.pm b/lib/SQL/Translator/Object/Procedure.pm index ebc4faa..40bf3e8 100644 --- a/lib/SQL/Translator/Object/Procedure.pm +++ b/lib/SQL/Translator/Object/Procedure.pm @@ -1,53 +1,47 @@ -package SQL::Translator::Object::Procedure; -use Moose; -use MooseX::Types::Moose qw(HashRef Int Maybe Str); -use MooseX::AttributeHelpers; -use SQL::Translator::Types qw(); -use SQL::Translator::Object::Schema; -extends 'SQL::Translator::Object'; +use MooseX::Declare; +class SQL::Translator::Object::Procedure extends SQL::Translator::Object { + use MooseX::Types::Moose qw(ArrayRef Str); + use MooseX::MultiMethods; + use SQL::Translator::Types qw(Schema); -has 'name' => ( - is => 'rw', - isa => Str, - required => 1 -); + has 'schema' => ( + is => 'rw', + isa => Schema, + weak_ref => 1, + ); + + has 'name' => ( + is => 'rw', + isa => Str, + required => 1 + ); + + has 'sql' => ( + is => 'rw', + isa => Str, + required => 1 + ); + + has '_parameters' => ( + traits => ['Array'], + isa => ArrayRef, + handles => { + _parameters => 'elements', + add_parameter => 'push', + remove_last_parameter => 'pop', + }, + default => sub { [] }, -has 'contents' => ( - is => 'rw', - isa => Str, - required => 1 -); + ); + + has 'owner' => ( + is => 'rw', + isa => Str, + default => 'owner', + required => 1 + ); -has 'parameters' => ( - metaclass => 'Collection::Hash', - is => 'rw', - isa => Maybe[HashRef[Int|Str]], - provides => { - exists => 'exists_parameter', - keys => 'parameter_ids', - get => 'get_parameter', - set => 'set_parameter', - }, - required => 0 -); - -has 'owner' => ( - is => 'rw', - isa => Str, - required => 1 -); - -has 'comments' => ( - is => 'rw', - isa => Str, - required => 0 -); - -has 'schema' => ( - is => 'rw', - isa => Schema, - required => 1, - default => sub { SQL::Translator::Object::Schema->new } -); - -1; + multi method parameters(Str $parameter) { $self->add_parameter($parameter) } + multi method parameters(ArrayRef $parameter) { $self->add_parameter($parameter) } + multi method parameters { $self->_parameters } +}