[2/2] testbot/lib: Improve the Backend methods argument handling.

Francois Gouget fgouget at codeweavers.com
Thu Jun 12 03:15:14 CDT 2014


This standardizes the way we handle the arguments.
Make it so one can readily see the list of arguments the method takes without having to hunt down the implementation of all its ancestors.
Because these are methods the added prototypes have no effect whatsoever as far as Perl is concerned. However they do document which arguments are optional.
---

Rebased to follow the previous higher priority patch.

 testbot/lib/ObjectModel/BackEnd.pm    |  8 ++--
 testbot/lib/ObjectModel/DBIBackEnd.pm | 82 ++++++++++++++---------------------
 2 files changed, 38 insertions(+), 52 deletions(-)

diff --git a/testbot/lib/ObjectModel/BackEnd.pm b/testbot/lib/ObjectModel/BackEnd.pm
index cf7439e..561bfce 100644
--- a/testbot/lib/ObjectModel/BackEnd.pm
+++ b/testbot/lib/ObjectModel/BackEnd.pm
@@ -35,17 +35,19 @@ require Exporter;
 @ISA = qw(Exporter);
 @EXPORT = qw(%ActiveBackEnds);
 
-sub new
+sub new($@)
 {
   my $class = shift;
+
   my $self = {};
   $self = bless $self, $class;
-  $self->_initialize();
+  $self->_initialize(@_);
   return $self;
 }
 
-sub _initialize
+sub _initialize($)
 {
+  #my ($self) = @_;
 }
 
 1;
diff --git a/testbot/lib/ObjectModel/DBIBackEnd.pm b/testbot/lib/ObjectModel/DBIBackEnd.pm
index 06b139d..45bd1f6 100644
--- a/testbot/lib/ObjectModel/DBIBackEnd.pm
+++ b/testbot/lib/ObjectModel/DBIBackEnd.pm
@@ -40,9 +40,9 @@ require Exporter;
 @ISA = qw(ObjectModel::BackEnd Exporter);
 @EXPORT = qw(&UseDBIBackend);
 
-sub GetDb
+sub GetDb($)
 {
-  my $self = shift;
+  my ($self) = @_;
 
   if (defined $self->{Db} && !$self->{Db}->ping())
   {
@@ -58,10 +58,9 @@ sub GetDb
   return $self->{Db};
 }
 
-sub ToDb
+sub ToDb($$$)
 {
-  my $self = shift;
-  my ($Value, $PropertyDescriptor) = @_;
+  my ($self, $Value, $PropertyDescriptor) = @_;
 
   if ($PropertyDescriptor->GetClass eq "Basic")
   {
@@ -97,10 +96,9 @@ sub ToDb
   return $Value;
 }
 
-sub FromDb
+sub FromDb($$$)
 {
-  my $self = shift;
-  my ($Value, $PropertyDescriptor) = @_;
+  my ($self, $Value, $PropertyDescriptor) = @_;
 
   if ($PropertyDescriptor->GetClass eq "Basic")
   {
@@ -129,10 +127,9 @@ sub FromDb
   return $Value;
 }
 
-sub BuildKeyWhere
+sub BuildKeyWhere($$$$)
 {
-  my $self = shift;
-  my ($PropertyDescriptors, $ColPrefix, $Where) = @_;
+  my ($self, $PropertyDescriptors, $ColPrefix, $Where) = @_;
 
   foreach my $PropertyDescriptor (@{$PropertyDescriptors})
   {
@@ -152,10 +149,9 @@ sub BuildKeyWhere
   return $Where;
 }
 
-sub BuildFieldList
+sub BuildFieldList($$)
 {
-  my $self = shift;
-  my $PropertyDescriptors = $_[0];
+  my ($self, $PropertyDescriptors) = @_;
 
   my $Fields = "";
   foreach my $PropertyDescriptor (@$PropertyDescriptors)
@@ -173,10 +169,9 @@ sub BuildFieldList
   return $Fields;
 }
 
-sub LoadCollection
+sub LoadCollection($$)
 {
-  my $self = shift;
-  my $Collection = $_[0];
+  my ($self, $Collection) = @_;
 
   my $Fields = $self->BuildFieldList($Collection->GetPropertyDescriptors());
 
@@ -266,10 +261,9 @@ however put the Item in the Collection's scope.
 =back
 =cut
 
-sub LoadItem
+sub LoadItem($$$)
 {
-  my $self = shift;
-  my ($Collection, $RequestedKey) = @_;
+  my ($self, $Collection, $RequestedKey) = @_;
 
   my $Fields = $self->BuildFieldList($Collection->GetPropertyDescriptors());
 
@@ -314,10 +308,9 @@ sub LoadItem
   return $Item;
 }
 
-sub BuildInsertStatement
+sub BuildInsertStatement($$$$)
 {
-  my $self = shift;
-  my ($TableName, $PropertyDescriptors, $MasterColNames) = @_;
+  my ($self, $TableName, $PropertyDescriptors, $MasterColNames) = @_;
 
   my $Fields = "";
   my $PlaceHolders = "";
@@ -352,11 +345,9 @@ sub BuildInsertStatement
   return "INSERT INTO $TableName ($Fields) VALUES($PlaceHolders)";
 }
 
-sub GetInsertData
+sub GetInsertData($$$)
 {
-  my $self = shift;
-  my $MasterColValues = shift;
-  my $Item = shift;
+  my ($self, $MasterColValues, $Item) = @_;
 
   my @Data;
   if (defined($MasterColValues))
@@ -376,10 +367,9 @@ sub GetInsertData
   return \@Data;
 }
 
-sub BuildUpdateStatement
+sub BuildUpdateStatement($$$$)
 {
-  my $self = shift;
-  my ($TableName, $PropertyDescriptors, $MasterColNames) = @_;
+  my ($self, $TableName, $PropertyDescriptors, $MasterColNames) = @_;
 
   my $Fields = "";
   foreach my $PropertyDescriptor (@{$PropertyDescriptors})
@@ -407,11 +397,9 @@ sub BuildUpdateStatement
   return "UPDATE $TableName SET $Fields WHERE $Where";
 }
 
-sub GetUpdateData
+sub GetUpdateData($$$)
 {
-  my $self = shift;
-  my $MasterColValues = shift;
-  my $Item = shift;
+  my ($self, $MasterColValues, $Item) = @_;
 
   my @Data;
   foreach my $PropertyDescriptor (@{$Item->GetPropertyDescriptors()})
@@ -445,10 +433,9 @@ sub GetUpdateData
   return \@Data;
 }
 
-sub SaveCollection
+sub SaveCollection($$)
 {
-  my $self = shift;
-  my $Collection = shift;
+  my ($self, $Collection) = @_;
 
   my $Db = $self->GetDb();
   my ($MasterColNames, $MasterColValues) = $Collection->GetMasterCols();
@@ -500,10 +487,9 @@ sub SaveCollection
   $UpdateStatement->finish();
 }
 
-sub SaveItem
+sub SaveItem($$)
 {
-  my $self = shift;
-  my $Item = $_[0];
+  my ($self, $Item) = @_;
 
   my $Query;
   my ($MasterColNames, $MasterColValues) = $Item->GetMasterCols();
@@ -528,10 +514,9 @@ sub SaveItem
   $Statement->finish();
 }
 
-sub DeleteItem
+sub DeleteItem($$)
 {
-  my $self = shift;
-  my $Item = shift;
+  my ($self, $Item) = @_;
 
   my $Where = "";
   my @Data;
@@ -554,10 +539,9 @@ sub DeleteItem
   return undef;
 }
 
-sub DeleteAll
+sub DeleteAll($$)
 {
-  my $self = shift;
-  my $Collection = shift;
+  my ($self, $Collection) = @_;
 
   my $Where = "";
   my @Data;
@@ -580,9 +564,9 @@ sub DeleteAll
   return undef;
 }
 
-sub PrepareForFork
+sub PrepareForFork($)
 {
-  my $self = shift;
+  my ($self) = @_;
 
   if (defined($self->{Db}))
   {
@@ -591,7 +575,7 @@ sub PrepareForFork
   }
 }
 
-sub UseDBIBackEnd
+sub UseDBIBackEnd($$@)
 {
   my $class = shift;
   my $DbSelector = shift;
-- 
2.0.0



More information about the wine-patches mailing list