X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=framework%2Fmain%2Fclasses%2Fclass_BaseFrameworkSystem.php;h=822debf99fbfd5ac4c7fbca6c0eff4c311a3d695;hb=287198e6942b1a08c760c92d83b52105d10a11cb;hp=18c13c090ed8e8e24cf85109c011939caa238a0b;hpb=5c7840de0bf7ae2fdfe90f283c91711e38368134;p=core.git diff --git a/framework/main/classes/class_BaseFrameworkSystem.php b/framework/main/classes/class_BaseFrameworkSystem.php index 18c13c09..822debf9 100644 --- a/framework/main/classes/class_BaseFrameworkSystem.php +++ b/framework/main/classes/class_BaseFrameworkSystem.php @@ -22,10 +22,11 @@ use Org\Mxchange\CoreFramework\Stream\Output\OutputStreamer; use Org\Mxchange\CoreFramework\Utils\Strings\StringUtils; // Import SPL stuff -use \stdClass; +use \BadMethodCallException; use \InvalidArgumentException; use \ReflectionClass; use \SplFileInfo; +use \stdClass; /** * The simulator system class is the super class of all other classes. This @@ -354,7 +355,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @throws UnsupportedOperationException Objects of this framework cannot be serialized */ public final function __sleep () { - throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + throw new UnsupportedOperationException([$this, __FUNCTION__], self::EXCEPTION_UNSPPORTED_OPERATION); } /** @@ -364,7 +365,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @throws UnsupportedOperationException Objects of this framework cannot be serialized */ public final function __wakeup () { - throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + throw new UnsupportedOperationException([$this, __FUNCTION__], self::EXCEPTION_UNSPPORTED_OPERATION); } /** @@ -374,7 +375,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @throws UnsupportedOperationException Objects of this framework cannot be serialized */ public final function __invoke () { - throw new UnsupportedOperationException(array($this, __FUNCTION__), self::EXCEPTION_UNSPPORTED_OPERATION); + throw new UnsupportedOperationException([$this, __FUNCTION__], self::EXCEPTION_UNSPPORTED_OPERATION); } /** @@ -404,11 +405,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @return $debugInstance Instance to class DebugConsoleOutput or DebugWebOutput */ public final function getDebugInstance () { - // Get debug instance - $debugInstance = GenericRegistry::getRegistry()->getInstance('debug'); - - // Return it - return $debugInstance; + return GenericRegistry::getRegistry()->getInstance('debug'); } /** @@ -427,8 +424,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac * @return $webOutputInstance - Instance to class WebOutput */ public final function getWebOutputInstance () { - $webOutputInstance = GenericRegistry::getRegistry()->getInstance('web_output'); - return $webOutputInstance; + return GenericRegistry::getRegistry()->getInstance('web_output'); } /** @@ -543,25 +539,6 @@ Loaded includes: )); } - /** - * Replaces control characters with printable output - * - * @param $str String with control characters - * @return $str Replaced string - */ - protected function replaceControlCharacters (string $str) { - // Replace them - $str = str_replace( - chr(13), '[r]', str_replace( - chr(10), '[n]', str_replace( - chr(9) , '[t]', - $str - ))); - - // Return it - return $str; - } - /** * Output a partial stub message for the caller method * @@ -625,7 +602,7 @@ Loaded includes: // Validate parameter if (empty($className)) { // Throw IAE - throw new InvalidArgumentException('Parameter "className" is empty'); + throw new InvalidArgumentException('Parameter "className" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); } elseif (!GenericRegistry::getRegistry()->instanceExists('debug')) { // Init debug instance $debugInstance = NULL; @@ -719,7 +696,7 @@ Loaded includes: } } else { // Are debug times enabled? - if (FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('debug_' . FrameworkBootstrap::getRequestTypeFromSystem() . '_output_timings') == 'Y') { + if (FrameworkBootstrap::getConfigurationInstance()->isEnabled('debug_' . FrameworkBootstrap::getRequestTypeFromSystem() . '_output_timings')) { // Prepent it $message = $this->getPrintableExecutionTime() . $message; } @@ -778,9 +755,12 @@ Loaded includes: * @return $entry An array with database entries * @throws NullPointerException If the database result is not found * @throws InvalidDatabaseResultException If the database result is invalid - * @todo Monolithic method, should be moved to proper classes + * @deprecated Monolithic method, should be moved to proper classes */ protected final function getDatabaseEntry () { + // This method is deprecated + $this->deprecationWarning('Monolithic method, should be moved to proper classes'); + // Is there an instance? if (!$this->getResultInstance() instanceof SearchableResult) { // Throw an exception here @@ -812,8 +792,19 @@ Loaded includes: * @param $fieldName Field name which we shall get * @return $fieldValue Field value from the user * @throws NullPointerException If the result instance is null + * @throws InvalidArgumentException If a parameter is not valid + * @deprecated Monolithic method, should be moved to proper classes */ public final function getField (string $fieldName) { + // Check parameter + if (empty($fieldName)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "fieldName" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } + + // This method is deprecated + $this->deprecationWarning('Monolithic method, should be moved to proper classes'); + // Default field value $fieldValue = NULL; @@ -855,8 +846,15 @@ Loaded includes: * @param $fieldName Field name to check * @return $isSet Whether the given field name is set * @throws NullPointerException If the result instance is null + * @throws InvalidArgumentException If a parameter is not valid */ public function isFieldSet (string $fieldName) { + // Check parameter + if (empty($fieldName)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "fieldName" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } + // Get result instance $resultInstance = $this->getResultInstance(); @@ -910,8 +908,15 @@ Loaded includes: * * @param $phpExtension The PHP extension we shall check * @return $isLoaded Whether the PHP extension is loaded + * @throws InvalidArgumentException If a parameter is not valid */ public final function isPhpExtensionLoaded (string $phpExtension) { + // Check parameter + if (empty($phpExtension)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "phpExtension" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } + // Is it loaded? $isLoaded = in_array($phpExtension, get_loaded_extensions()); @@ -937,8 +942,15 @@ Loaded includes: * Idles (sleeps) for given milliseconds * * @return $hasSlept Whether it goes fine + * @throws InvalidArgumentException If a parameter is not valid */ public function idle (int $milliSeconds) { + // Check parameter + if ($milliSeconds < 1) { + // Throw IAE + throw new InvalidArgumentException(sprintf('milliSeconds=%d are not a reasonable value to idle', $milliSeconds)); + } + // Sleep is fine by default $hasSlept = true; @@ -966,8 +978,15 @@ Loaded includes: * * @param $encodedData Encoded data we shall check * @return $isBase64 Whether the encoded data is Base64 + * @throws InvalidArgumentException If a parameter is not valid */ protected function isBase64Encoded (string $encodedData) { + // Check parameter + if (empty($encodedData)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "encodedData" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } + // Determine it $isBase64 = (@base64_decode($encodedData, true) !== false); @@ -1005,8 +1024,24 @@ Loaded includes: * @param $key Key to check * @param $element Element to check * @return $isset Whether the given key is set + * @throws InvalidArgumentException If a parameter is not valid */ - protected final function isGenericArrayElementSet (string $keyGroup, string $subGroup, $key, $element) { + protected final function isGenericArrayElementSet (string $keyGroup, string $subGroup, string $key, string $element) { + // Check parameter + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif ($element === '') { + // Throw IAE + throw new InvalidArgumentException('Parameter "element" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } + // Is it there? //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element); $isset = isset($this->genericArray[$keyGroup][$subGroup][$key][$element]); @@ -1021,8 +1056,21 @@ Loaded includes: * @param $subGroup Sub group for the key * @param $key Key to check * @return $isset Whether the given key is set + * @throws InvalidArgumentException If a parameter is not valid */ - protected final function isGenericArrayKeySet (string $keyGroup, string $subGroup, $key) { + protected final function isGenericArrayKeySet (string $keyGroup, string $subGroup, string $key) { + // Check parameter + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } + // Is it there? //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); $isset = isset($this->genericArray[$keyGroup][$subGroup][$key]); @@ -1031,17 +1079,26 @@ Loaded includes: return $isset; } - /** * Determines if a group is set in the generic array * * @param $keyGroup Main group * @param $subGroup Sub group * @return $isset Whether the given group is set + * @throws InvalidArgumentException If a parameter is not valid */ protected final function isGenericArrayGroupSet (string $keyGroup, string $subGroup) { - // Is it there? + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup); + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } + + // Is it there? $isset = isset($this->genericArray[$keyGroup][$subGroup]); // Return it @@ -1054,17 +1111,24 @@ Loaded includes: * @param $keyGroup Main key group * @param $subGroup Sub key group * @return $array An array with all array elements + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group isn't there but this method is invoked */ protected final function getGenericSubArray (string $keyGroup, string $subGroup) { - // Is it there? - if (!$this->isGenericArrayGroupSet($keyGroup, $subGroup)) { + // Check parameter + //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',value=' . print_r($this->genericArray[$keyGroup][$subGroup], true)); + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isGenericArrayGroupSet($keyGroup, $subGroup)) { // No, then abort here - trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' not found.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s not found.', $keyGroup, $subGroup)); } // Return it - //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',value=' . print_r($this->genericArray[$keyGroup][$subGroup], true)); return $this->genericArray[$keyGroup][$subGroup]; } @@ -1075,10 +1139,23 @@ Loaded includes: * @param $subGroup Sub group for the key * @param $key Key to unset * @return void + * @throws InvalidArgumentException If a parameter is not valid */ - protected final function unsetGenericArrayKey (string $keyGroup, string $subGroup, $key) { - // Remove it + protected final function unsetGenericArrayKey (string $keyGroup, string $subGroup, string $key) { + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } + + // Remove it unset($this->genericArray[$keyGroup][$subGroup][$key]); } @@ -1090,10 +1167,24 @@ Loaded includes: * @param $key Key to unset * @param $element Element to unset * @return void + * @throws InvalidArgumentException If a parameter is not valid */ - protected final function unsetGenericArrayElement (string $keyGroup, string $subGroup, $key, $element) { - // Debug message + protected final function unsetGenericArrayElement (string $keyGroup, string $subGroup, string $key, string $element) { + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element); + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif ($element === '') { + // Throw IAE + throw new InvalidArgumentException('Parameter "element" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } // Remove it unset($this->genericArray[$keyGroup][$subGroup][$key][$element]); @@ -1107,18 +1198,29 @@ Loaded includes: * @param $key Key to unset * @param $value Value to add/append * @return void + * @throws InvalidArgumentException If a parameter is not valid */ - protected final function appendStringToGenericArrayKey (string $keyGroup, string $subGroup, $key, string $value, $appendGlue = '') { - // Debug message + protected final function appendStringToGenericArrayKey (string $keyGroup, string $subGroup, $key, string $value, string $appendGlue = '') { + // Check parameter //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',value[' . gettype($value) . ']=' . print_r($value, true) . ',appendGlue=' . $appendGlue); + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } // Is it already there? if ($this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { // Append it - $this->genericArray[$keyGroup][$subGroup][$key] .= $appendGlue . (string) $value; + $this->genericArray[$keyGroup][$subGroup][$key] .= $appendGlue . $value; } else { // Add it - $this->genericArray[$keyGroup][$subGroup][$key] = (string) $value; + $this->genericArray[$keyGroup][$subGroup][$key] = $value; } } @@ -1131,39 +1233,35 @@ Loaded includes: * @param $element Element to check * @param $value Value to add/append * @return void + * @throws InvalidArgumentException If a parameter is not valid */ - protected final function appendStringToGenericArrayElement (string $keyGroup, string $subGroup, $key, $element, $value, $appendGlue = '') { - // Debug message + protected final function appendStringToGenericArrayElement (string $keyGroup, string $subGroup, string $key, string $element, string $value, string $appendGlue = '') { + // Check parameter //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',value[' . gettype($value) . ']=' . print_r($value, true) . ',appendGlue=' . $appendGlue); + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif ($element === '') { + // Throw IAE + throw new InvalidArgumentException('Parameter "element" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } // Is it already there? if ($this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) { // Append it - $this->genericArray[$keyGroup][$subGroup][$key][$element] .= $appendGlue . (string) $value; + $this->genericArray[$keyGroup][$subGroup][$key][$element] .= $appendGlue . $value; } else { // Add it - $this->setStringGenericArrayElement($keyGroup, $subGroup, $key, $element, $value); + $this->setGenericArrayElement($keyGroup, $subGroup, $key, $element, $value); } } - /** - * Sets a string in a given generic array element - * - * @param $keyGroup Main group for the key - * @param $subGroup Sub group for the key - * @param $key Key to unset - * @param $element Element to check - * @param $value Value to add/append - * @return void - */ - protected final function setStringGenericArrayElement (string $keyGroup, string $subGroup, $key, $element, $value, $appendGlue = '') { - // Debug message - //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',value[' . gettype($value) . ']=' . print_r($value, true) . ',appendGlue=' . $appendGlue); - - // Set it - $this->genericArray[$keyGroup][$subGroup][$key][$element] = (string) $value; - } - /** * Initializes given generic array group * @@ -1172,16 +1270,21 @@ Loaded includes: * @param $key Key to use * @param $forceInit Optionally force initialization * @return void + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group has already been initialized */ protected final function initGenericArrayGroup (string $keyGroup, string $subGroup, bool $forceInit = false) { - // Debug message + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',forceInit=' . intval($forceInit)); - - // Is it already set? - if (($forceInit === false) && ($this->isGenericArrayGroupSet($keyGroup, $subGroup))) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (($forceInit === false) && ($this->isGenericArrayGroupSet($keyGroup, $subGroup))) { // Already initialized - trigger_error(__METHOD__ . ':keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' already initialized.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s already initialized.', $keyGroup, $subGroup)); } // Initialize it @@ -1196,16 +1299,24 @@ Loaded includes: * @param $key Key to use * @param $forceInit Optionally force initialization * @return void + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group has already been initialized */ protected final function initGenericArrayKey (string $keyGroup, string $subGroup, $key, bool $forceInit = false) { - // Debug message + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',forceInit=' . intval($forceInit)); - - // Is it already set? - if (($forceInit === false) && ($this->isGenericArrayKeySet($keyGroup, $subGroup, $key))) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (($forceInit === false) && ($this->isGenericArrayKeySet($keyGroup, $subGroup, $key))) { // Already initialized - trigger_error(__METHOD__ . ':keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ' already initialized.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s already initialized.', $keyGroup, $subGroup, gettype($key), $key)); } // Initialize it @@ -1221,16 +1332,27 @@ Loaded includes: * @param $element Element to use * @param $forceInit Optionally force initialization * @return void + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group isn't there but this method is invoked */ - protected final function initGenericArrayElement (string $keyGroup, string $subGroup, $key, $element, bool $forceInit = false) { - // Debug message + protected final function initGenericArrayElement (string $keyGroup, string $subGroup, string $key, string $element, bool $forceInit = false) { + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',forceInit=' . intval($forceInit)); - - // Is it already set? - if (($forceInit === false) && ($this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element))) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif ($element === '') { + // Throw IAE + throw new InvalidArgumentException('Parameter "element" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (($forceInit === false) && ($this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element))) { // Already initialized - trigger_error(__METHOD__ . ':keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ' already initialized.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s,element[%s]=%s already initialized.', $keyGroup, $subGroup, gettype($key), $key, gettype($element), $element)); } // Initialize it @@ -1238,20 +1360,28 @@ Loaded includes: } /** - * Pushes an element to a generic key + * Pushes an element to a generic key. If the key isn't found, it will be initialized. * * @param $keyGroup Main group for the key * @param $subGroup Sub group for the key * @param $key Key to use * @param $value Value to add/append * @return $count Number of array elements + * @throws InvalidArgumentException If a parameter is not valid */ - protected final function pushValueToGenericArrayKey (string $keyGroup, string $subGroup, $key, $value) { - // Debug message + protected final function pushValueToGenericArrayKey (string $keyGroup, string $subGroup, string $key, $value) { + // Check parameter //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',value[' . gettype($value) . ']=' . print_r($value, true)); - - // Is it set? - if (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { // Initialize array $this->initGenericArrayKey($keyGroup, $subGroup, $key); } @@ -1266,7 +1396,7 @@ Loaded includes: } /** - * Pushes an element to a generic array element + * Pushes an element to a generic array element. If the key isn't found, it will be initialized. * * @param $keyGroup Main group for the key * @param $subGroup Sub group for the key @@ -1274,13 +1404,24 @@ Loaded includes: * @param $element Element to check * @param $value Value to add/append * @return $count Number of array elements + * @throws InvalidArgumentException If a parameter is not valid */ - protected final function pushValueToGenericArrayElement (string $keyGroup, string $subGroup, $key, $element, $value) { - // Debug message + protected final function pushValueToGenericArrayElement (string $keyGroup, string $subGroup, string $key, string $element, $value) { + // Check parameter //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',value[' . gettype($value) . ']=' . print_r($value, true)); - - // Is it set? - if (!$this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif ($element === '') { + // Throw IAE + throw new InvalidArgumentException('Parameter "element" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) { // Initialize array $this->initGenericArrayElement($keyGroup, $subGroup, $key, $element); } @@ -1301,16 +1442,24 @@ Loaded includes: * @param $subGroup Sub group for the key * @param $key Key to unset * @return $value Last "popped" value + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group isn't there but this method is invoked */ - protected final function popGenericArrayElement (string $keyGroup, string $subGroup, $key) { - // Debug message + protected final function popGenericArrayElement (string $keyGroup, string $subGroup, string $key) { + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); - - // Is it set? - if (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { // Not found - trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ' not found.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key)); } // Then "pop" it @@ -1328,17 +1477,25 @@ Loaded includes: * @param $keyGroup Main group for the key * @param $subGroup Sub group for the key * @param $key Key to unset - * @return $value Last "popped" value + * @return $value Last "shifted" value + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group isn't there but this method is invoked */ - protected final function shiftGenericArrayElement (string $keyGroup, string $subGroup, $key) { - // Debug message + protected final function shiftGenericArrayElement (string $keyGroup, string $subGroup, string $key) { + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); - - // Is it set? - if (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { // Not found - trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ' not found.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key)); } // Then "shift" it @@ -1355,25 +1512,25 @@ Loaded includes: * * @param $keyGroup Main group for the key * @return $count Count of given group + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key group isn't there but this method is invoked */ - protected final function countGenericArray ($keyGroup) { - // Debug message + protected final function countGenericArray (string $keyGroup) { + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup); - - // Is it there? - if (!isset($this->genericArray[$keyGroup])) { - // Abort here - trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ' not found.'); - exit; + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!isset($this->genericArray[$keyGroup])) { + // Not found + throw new BadMethodCallException(sprintf('keyGroup=%s not found.', $keyGroup)); } // Then count it $count = count($this->genericArray[$keyGroup]); - // Debug message - //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',count=' . $count); - // Return it + //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',count=' . $count); return $count; } @@ -1383,25 +1540,28 @@ Loaded includes: * @param $keyGroup Main group for the key * @param $subGroup Sub group for the key * @return $count Count of given group + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group isn't there but this method is invoked */ protected final function countGenericArrayGroup (string $keyGroup, string $subGroup) { - // Debug message + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup); - - // Is it there? - if (!$this->isGenericArrayGroupSet($keyGroup, $subGroup)) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isGenericArrayGroupSet($keyGroup, $subGroup)) { // Abort here - trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' not found.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s not found.', $keyGroup, $subGroup)); } // Then count it $count = count($this->genericArray[$keyGroup][$subGroup]); - // Debug message - //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',count=' . $count); - // Return it + //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',count=' . $count); return $count; } @@ -1410,31 +1570,36 @@ Loaded includes: * * @param $keyGroup Main group for the key * @param $subGroup Sub group for the key - * @para $key Key to count + * @param $key Key to count * @return $count Count of given key + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group isn't there but this method is invoked */ - protected final function countGenericArrayElements (string $keyGroup, string $subGroup, $key) { - // Debug message + protected final function countGenericArrayElements (string $keyGroup, string $subGroup, string $key) { + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); - - // Is it there? - if (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { // Abort here - trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' not found.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key)); } elseif (!$this->isValidGenericArrayGroup($keyGroup, $subGroup)) { // Not valid - trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ' is not an array.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s is not a valid key/sub group.', $keyGroup, $subGroup)); } // Then count it $count = count($this->genericArray[$keyGroup][$subGroup][$key]); - // Debug message - //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',count=' . $count); - // Return it + //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',count=' . $count); return $count; } @@ -1443,16 +1608,18 @@ Loaded includes: * * @param $keyGroup Key group to get * @return $array Whole generic array group + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group isn't there but this method is invoked */ - protected final function getGenericArray ($keyGroup) { - // Debug message + protected final function getGenericArray (string $keyGroup) { + // Check parameters //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup); - - // Is it there? - if (!isset($this->genericArray[$keyGroup])) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!isset($this->genericArray[$keyGroup])) { // Then abort here - trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ' does not exist.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s not found', $keyGroup)); } // Return it @@ -1467,10 +1634,25 @@ Loaded includes: * @param $key Key to unset * @param $value Mixed value from generic array element * @return void + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group isn't there but this method is invoked */ - protected final function setGenericArrayKey (string $keyGroup, string $subGroup, $key, $value) { - // Debug message + protected final function setGenericArrayKey (string $keyGroup, string $subGroup, string $key, $value) { + // Check parameters //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',value[' . gettype($value) . ']=' . print_r($value, true)); + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isValidGenericArrayGroup($keyGroup, $subGroup)) { + // Then abort here + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s not found', $keyGroup)); + } // Set value here $this->genericArray[$keyGroup][$subGroup][$key] = $value; @@ -1483,16 +1665,24 @@ Loaded includes: * @param $subGroup Sub group for the key * @param $key Key to unset * @return $value Mixed value from generic array element + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group isn't there but this method is invoked */ - protected final function getGenericArrayKey (string $keyGroup, string $subGroup, $key) { - // Debug message + protected final function getGenericArrayKey (string $keyGroup, string $subGroup, string $key) { + // Check parameters //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); - - // Is it there? - if (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) { // Then abort here - trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ' does not exist.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key)); } // Return it @@ -1508,10 +1698,27 @@ Loaded includes: * @param $element Element to set * @param $value Value to set * @return void + * @throws InvalidArgumentException If a parameter is not valid */ - protected final function setGenericArrayElement (string $keyGroup, string $subGroup, $key, $element, $value) { - // Debug message + protected final function setGenericArrayElement (string $keyGroup, string $subGroup, string $key, string $element, $value) { + // Check parameter //* NOISY-DEBUG: */ if (!is_object($value)) $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ',value[' . gettype($value) . ']=' . print_r($value, true)); + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif ($element === '') { + // Throw IAE + throw new InvalidArgumentException('Parameter "element" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) { + // Initialize array + $this->initGenericArrayElement($keyGroup, $subGroup, $key, $element); + } // Then set it $this->genericArray[$keyGroup][$subGroup][$key][$element] = $value; @@ -1525,16 +1732,27 @@ Loaded includes: * @param $key Key to look for * @param $element Element to look for * @return $value Mixed value from generic array element + * @throws InvalidArgumentException If a parameter is not valid + * @throws BadMethodCallException If key/sub group isn't there but this method is invoked */ - protected final function getGenericArrayElement (string $keyGroup, string $subGroup, $key, $element) { - // Debug message + protected final function getGenericArrayElement (string $keyGroup, string $subGroup, string $key, string $element) { + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element); - - // Is it there? - if (!$this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) { + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif ($element === '') { + // Throw IAE + throw new InvalidArgumentException('Parameter "element" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (!$this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) { // Then abort here - trigger_error(__METHOD__ . ': keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',element=' . $element . ' does not exist.'); - exit; + throw new BadMethodCallException(sprintf('keyGroup=%s,subGroup=%s,key[%s]=%s,element[%s]=%s not found.', $keyGroup, $subGroup, gettype($key), $key, gettype($element), $element)); } // Return it @@ -1547,10 +1765,18 @@ Loaded includes: * @param $keyGroup Key group to get * @param $subGroup Sub group for the key * @return $isValid Whether given sub group is valid + * @throws InvalidArgumentException If a parameter is not valid */ protected final function isValidGenericArrayGroup (string $keyGroup, string $subGroup) { - // Debug message + // Check parameter //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup); + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } // Determine it $isValid = (($this->isGenericArrayGroupSet($keyGroup, $subGroup)) && (is_array($this->getGenericSubArray($keyGroup, $subGroup)))); @@ -1567,9 +1793,19 @@ Loaded includes: * @param $key Key to check * @return $isValid Whether given sub group is valid */ - protected final function isValidGenericArrayKey (string $keyGroup, string $subGroup, $key) { - // Debug message + protected final function isValidGenericArrayKey (string $keyGroup, string $subGroup, string $key) { + // Check parameters //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key); + if (empty($keyGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($subGroup)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "subGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } elseif (empty($key)) { + // Throw IAE + throw new InvalidArgumentException('Parameter "key" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); + } // Determine it $isValid = (($this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) && (is_array($this->getGenericArrayKey($keyGroup, $subGroup, $key)))); @@ -1598,9 +1834,6 @@ Loaded includes: * @return $translated Translated boolean value */ public static final function translateBooleanToYesNo (bool $boolean) { - // Make sure it is really boolean - assert(is_bool($boolean)); - // "Translate" it $translated = ($boolean === true) ? 'Y' : 'N';