r4578 - trunk/src/perl

walbridge at ecoinformatics.org walbridge at ecoinformatics.org
Wed Nov 19 11:13:01 PST 2008


Author: walbridge
Date: 2008-11-19 11:13:01 -0800 (Wed, 19 Nov 2008)
New Revision: 4578

Modified:
   trunk/src/perl/register-dataset.cgi
Log:
Add incrementRevision function to replace duplicated code


Modified: trunk/src/perl/register-dataset.cgi
===================================================================
--- trunk/src/perl/register-dataset.cgi	2008-11-19 18:58:00 UTC (rev 4577)
+++ trunk/src/perl/register-dataset.cgi	2008-11-19 19:13:01 UTC (rev 4578)
@@ -436,16 +436,8 @@
             debug("Registry: B3");
         } else {
             # document is being modified
-            $docid = $FORM::docid;
+            $docid = incrementRevision($FORM::docid);
 
-            my $x;
-            my $y;
-            my $z;
-
-            ($x, $y, $z) = split(/\./, $docid); 
-            $z++;
-            $docid = "$x.$y.$z";
-
             $xmldoc =~ s/docid/$docid/;
             debugDoc($xmldoc);$
 
@@ -564,6 +556,19 @@
     return $docid;
 }
 
+sub incrementRevision {
+    my $initDocid = shift;
+    my $docid = '';
+    if (!$initDocid) {
+        debug("Registry: No docid entered.");
+    } else {
+        my ($scope, $id, $rev) = split(/\./, $initDocid);
+        $rev++;
+        $docid = "$scope.$id.$rev";
+    }
+    return $docid;
+}
+
 ################################################################################
 # 
 # Validate the parameters to make sure that required params are provided
@@ -2919,16 +2924,8 @@
 
             #debug("Document created by handleModAccept is " . $emldoc);
             # update the document
-            my $docid = $FORM::docid;
+            my $newDocid = incrementRevision($docid);
 
-            my $x;
-            my $y;
-            my $z;
-
-            ($x, $y, $z) = split(/\./, $docid); 
-            $z++;
-            my $newDocid = "$x.$y.$z";
-
             $emldoc =~ s/packageId=\"$docid\"/packageId=\"$newDocid\"/;
             $response = $metacat->update($newDocid, $emldoc);
 
@@ -3221,21 +3218,13 @@
         #debug("Document created by handleModAccept is " . $emldoc);
         # update the document
         my $docid = $FORM::docid;
+        my $newDocid = incrementRevision($docid);
 
-        my $x;
-        my $y;
-        my $z;
-
-        ($x, $y, $z) = split(/\./, $docid);
-        $z++;
-        my $newDocid = "$x.$y.$z";
-
         $emldoc =~ s/packageId=\"$docid\"/packageId=\"$newDocid\"/;
         $response = $metacat->update($newDocid, $emldoc);
 
         if (!$response) {
             debug("Error while updating in handleModAccept.".$metacat->getMessage());
-            #push(@errorMessages, $metacat->getMessage());
             $errorMessage = $errorMessage." Failed while updating the document with additional Metadata.";
         }
 
@@ -3305,9 +3294,7 @@
             } else {
                 my ($reviewdoc, $temp) = split('</reviewHistory>', $doc);
                 $reviewdoc .= $review."\n</reviewHistory>\n";
-                ($x, $y, $z) = split(/\./, $reviewDocumentId);
-                $z++;
-                $reviewDocumentId = "$x.$y.$z";
+                $reviewDocumentId = incrementRevision($reviewDocumentId);
                 $response = $metacat->update($reviewDocumentId, $reviewdoc);
                 if ($response != '1') {
                     return " Unable to update the review on Metacat for the docid:".$docid;



More information about the Metacat-cvs mailing list