justify IAE -> IRAE conversion
authorDenis Ovsienko <infrastation@yandex.ru>
Thu, 16 Jan 2014 14:37:32 +0000 (18:37 +0400)
committerDenis Ovsienko <infrastation@yandex.ru>
Thu, 16 Jan 2014 14:38:03 +0000 (18:38 +0400)
InvalidArgException: remove 3 accessor methods to stop exposing
  unnecessary details, add two class conversion methods
convertToIRAE(): reduce and deprecate
assertDateArg(): switch to InvalidArgException::newIRAE()
assertIPArg(): idem
assertIPv4Arg(): idem
assertIPv6Arg(): idem

wwwroot/inc/exceptions.php
wwwroot/inc/functions.php

index d0556e0d3ce25aecfb003c1970c7530d33e1b59b..6397447272ab94f3dd376d9b4012342989717272 100644 (file)
@@ -98,6 +98,16 @@ class ERetryNeeded extends RackTablesError
 // this simplifies construction of RackTablesError, but is never caught
 class InvalidArgException extends RackTablesError
 {
+       // derive an instance of InvalidRequestArgException
+       function newIRAE ($argname)
+       {
+               return new InvalidRequestArgException ($argname, $_REQUEST[$argname], $this->reason);
+       }
+       // for backward compatibility only, remove together with convertToIRAE()
+       function newIRAESameArgument()
+       {
+               return new InvalidRequestArgException ($this->name, $this->value, $this->reason);
+       }
        function __construct ($name, $value, $reason=NULL)
        {
                $message = 'Argument \'' . niftyString ($name) . '\'' .
@@ -109,18 +119,6 @@ class InvalidArgException extends RackTablesError
                $this->value = $value;
                $this->reason = $reason;
        }
-       public function getName()
-       {
-               return $this->name;
-       }
-       public function getValue()
-       {
-               return $this->value;
-       }
-       public function getReason()
-       {
-               return $this->reason;
-       }
 }
 
 // this simplifies construction and helps in catching "soft"
index 550802cdfed7ad0329bfbbd8b9427d7292244307..2130c5c1d3241007e4fd3a31f86929f72b3f3ba4 100644 (file)
@@ -184,7 +184,7 @@ function assertDateArg ($argname, $ok_if_empty = FALSE)
        }
        catch (InvalidArgException $e)
        {
-               throw convertToIRAE ($e, $argname);
+               throw $e->newIRAE ($argname);
        }
 }
 
@@ -222,7 +222,7 @@ function assertIPArg ($argname)
        }
        catch (InvalidArgException $e)
        {
-               throw convertToIRAE ($e, $argname);
+               throw $e->newIRAE ($argname);
        }
 }
 
@@ -235,7 +235,7 @@ function assertIPv4Arg ($argname)
        }
        catch (InvalidArgException $e)
        {
-               throw convertToIRAE ($e, $argname);
+               throw $e->newIRAE ($argname);
        }
 }
 
@@ -248,7 +248,7 @@ function assertIPv6Arg ($argname)
        }
        catch (InvalidArgException $e)
        {
-               throw convertToIRAE ($e, $argname);
+               throw $e->newIRAE ($argname);
        }
 }
 
@@ -5949,22 +5949,15 @@ function checkPortRole ($vswitch, $port_name, $port_order)
 
 # Convert InvalidArgException to InvalidRequestArgException with a choice of
 # replacing the reference to the failed argument or leaving it unchanged.
+#
+# DEPRECATED, use InvalidArgException::newIRAE()
 function convertToIRAE ($iae, $override_argname = NULL)
 {
        if (! ($iae instanceof InvalidArgException))
                throw new InvalidArgException ('iae', '(object)', 'not an instance of InvalidArgException class');
-
-       if (is_null ($override_argname))
-       {
-               $reported_argname = $iae->getName();
-               $reported_argvalue = $iae->getValue();
-       }
-       else
-       {
-               $reported_argname = $override_argname;
-               $reported_argvalue = $_REQUEST[$override_argname];
-       }
-       return new InvalidRequestArgException ($reported_argname, $reported_argvalue, $iae->getReason());
+       return is_null ($override_argname) ?
+               $iae->newIRAESameArgument() : # for backward compatibility only
+               $iae->newIRAE ($override_argname);
 }
 
 # Produce a textual date/time from a given UNIX timestamp