X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FObject%2FProcedure.pm;h=2674e600a2ef463f48d3107b0d7159d922a90428;hb=5b7d1de74d72f3946dc4454806ece831a16f3031;hp=df1ec3887d4617912753b292d76aadd21de1dcfe;hpb=8dc323499f4db1e3d70263f927c9bc1aabd2f496;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 df1ec38..2674e60 100644 --- a/lib/SQL/Translator/Object/Procedure.pm +++ b/lib/SQL/Translator/Object/Procedure.pm @@ -1,10 +1,14 @@ use MooseX::Declare; -class SQL::Translator::Object::Procedure { - use namespace::autoclean; - use Moose; - use MooseX::Types::Moose qw(ArrayRef Int Str); - use aliased 'SQL::Translator::Object::Schema'; - extends 'SQL::Translator::Object'; +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 'schema' => ( + is => 'rw', + isa => Schema, + weak_ref => 1, + ); has 'name' => ( is => 'rw', @@ -18,9 +22,16 @@ class SQL::Translator::Object::Procedure { required => 1 ); - has 'parameters' => ( - is => 'rw', + has '_parameters' => ( + traits => ['Array'], isa => ArrayRef, + handles => { + _parameters => 'elements', + add_parameter => 'push', + remove_last_parameter => 'pop', + }, + default => sub { [] }, + ); has 'owner' => ( @@ -28,4 +39,8 @@ class SQL::Translator::Object::Procedure { isa => Str, required => 1 ); + + multi method parameters(Str $parameter) { $self->add_parameter($parameter) } + multi method parameters(ArrayRef $parameter) { $self->add_parameter($parameter) } + multi method parameters { $self->_parameters } }