]> git.mxchange.org Git - core.git/blobdiff - framework/main/classes/class_BaseFrameworkSystem.php
Continued:
[core.git] / framework / main / classes / class_BaseFrameworkSystem.php
index dc2410c324d9991d2e8a4b91f5a4c7c791cd87e7..431c3a1032765cb4283237c39f6cc3959b51979a 100644 (file)
@@ -15,7 +15,7 @@ use Org\Mxchange\CoreFramework\Helper\Application\ApplicationHelper;
 use Org\Mxchange\CoreFramework\Loader\ClassLoader;
 use Org\Mxchange\CoreFramework\Manager\ManageableApplication;
 use Org\Mxchange\CoreFramework\Middleware\Debug\DebugMiddleware;
-use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
+use Org\Mxchange\CoreFramework\Registry\Object\ObjectRegistry;
 use Org\Mxchange\CoreFramework\Result\Database\CachedDatabaseResult;
 use Org\Mxchange\CoreFramework\State\Stateable;
 use Org\Mxchange\CoreFramework\Stream\Output\OutputStreamer;
@@ -118,7 +118,6 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac
        const EXCEPTION_DIR_POINTER_INVALID          = 0x019;
        const EXCEPTION_FILE_POINTER_INVALID         = 0x01a;
        const EXCEPTION_INVALID_RESOURCE             = 0x01b;
-       const EXCEPTION_UNEXPECTED_OBJECT            = 0x01c;
        const EXCEPTION_LIMIT_ELEMENT_IS_UNSUPPORTED = 0x01d;
        const EXCEPTION_GETTER_IS_MISSING            = 0x01e;
        const EXCEPTION_ARRAY_EXPECTED               = 0x01f;
@@ -140,7 +139,6 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac
        const EXCEPTION_MISSING_ELEMENT              = 0x02f;
        const EXCEPTION_HEADERS_ALREADY_SENT         = 0x030;
        const EXCEPTION_DEFAULT_CONTROLLER_GONE      = 0x031;
-       const EXCEPTION_CLASS_NOT_FOUND              = 0x032;
        const EXCEPTION_REQUIRED_INTERFACE_MISSING   = 0x033;
        const EXCEPTION_FATAL_ERROR                  = 0x034;
        const EXCEPTION_FILE_NOT_FOUND               = 0x035;
@@ -419,7 +417,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac
         * @return      void
         */
        public final function setWebOutputInstance (OutputStreamer $webInstance) {
-               GenericRegistry::getRegistry()->addInstance('web_output', $webInstance);
+               ObjectRegistry::getRegistry('generic')->addInstance('web_output', $webInstance);
        }
 
        /**
@@ -428,7 +426,7 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac
         * @return      $webOutputInstance - Instance to class WebOutput
         */
        public final function getWebOutputInstance () {
-               return GenericRegistry::getRegistry()->getInstance('web_output');
+               return ObjectRegistry::getRegistry('generic')->getInstance('web_output');
        }
 
        /**
@@ -485,14 +483,23 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac
         *
         * @param       $str    A string (maybe) without trailing slash
         * @return      $str    A string with an auto-appended trailing slash
+        * @throws      InvalidArgumentException        If a paramter has an invalid value
         */
        public final function addMissingTrailingSlash (string $str) {
+               // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: str=%s - CALLED!', $str));
+               if (empty($str)) {
+                       // Throw IAE
+                       throw new InvalidArgumentException('Parameter "str" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
+               }
+
                // Is there a trailing slash?
                if (substr($str, -1, 1) != '/') {
                        $str .= '/';
                }
 
                // Return string with trailing slash
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: str=%s - EXIT!', $str));
                return $str;
        }
 
@@ -501,8 +508,16 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac
         *
         * @param       $message        Optional message to show in debug output
         * @return      void
+        * @throws      InvalidArgumentException        If a paramter has an invalid value
         */
        public final function debugInstance (string $message = '') {
+               // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: message=%s - CALLED!', $message));
+               if (empty($message)) {
+                       // Throw IAE
+                       throw new InvalidArgumentException('Parameter "message" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
+               }
+
                // Restore the error handler to avoid trouble with missing array elements or undeclared variables
                restore_error_handler();
 
@@ -549,8 +564,16 @@ Loaded includes:
         * @param       $message        An optional message to output
         * @param       $doExit         Whether exit the program (true is default)
         * @return      void
+        * @throws      InvalidArgumentException        If a paramter has an invalid value
         */
        public function debugBackTrace (string $message = '', bool $doExit = true) {
+               // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: message=%s,doExit=%d - CALLED!', $message, intval($doExit)));
+               if (empty($message)) {
+                       // Throw IAE
+                       throw new InvalidArgumentException('Parameter "message" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
+               }
+
                // Sorry, there is no other way getting this nice backtrace
                if (!empty($message)) {
                        // Output message
@@ -563,7 +586,8 @@ Loaded includes:
 
                // Exit program?
                if ($doExit === true) {
-                       exit();
+                       // Yes, with error code
+                       exit(255);
                }
        }
 
@@ -611,8 +635,16 @@ Loaded includes:
         *
         * @param       $message        Message to output
         * @return      void
+        * @throws      InvalidArgumentException        If a paramter has an invalid value
         */
        public function outputLine (string $message) {
+               // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: message=%s - CALLED!', $message));
+               if (empty($message)) {
+                       // Throw IAE
+                       throw new InvalidArgumentException('Parameter "message" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
+               }
+
                // Simply output it
                print($message . PHP_EOL);
        }
@@ -622,8 +654,16 @@ Loaded includes:
         *
         * @param       $phpCode                Unmarked PHP code
         * @return      $markedCode             Marked PHP code
+        * @throws      InvalidArgumentException        If a paramter has an invalid value
         */
        public function markupCode (string $phpCode) {
+               // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-FRAMEWORK-SYSTEM: phpCode=%s - CALLED!', $phpCode));
+               if (empty($phpCode)) {
+                       // Throw IAE
+                       throw new InvalidArgumentException('Parameter "phpCode" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
+               }
+
                // Init marked code
                $markedCode = '';
 
@@ -802,9 +842,17 @@ Loaded includes:
         *
         * @param       $message        The message we shall output to the developer
         * @return      void
+        * @throws      InvalidArgumentException        If a paramter has an invalid value
         * @todo        Write a logging mechanism for productive mode
         */
        public function deprecationWarning (string $message) {
+               // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: message=%s - CALLED!', $message));
+               if (empty($message)) {
+                       // Throw IAE
+                       throw new InvalidArgumentException('Parameter "message" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
+               }
+
                // Is developer mode active?
                if (FrameworkBootstrap::getConfigurationInstance()->isEnabled('developer_mode')) {
                        // Debug instance is there?
@@ -820,6 +868,9 @@ Loaded includes:
                        // @TODO Finish this part!
                        DebugMiddleware::getSelfInstance()->partialStub('Developer mode inactive. Message:' . $message);
                }
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -831,6 +882,7 @@ Loaded includes:
         */
        public final function isPhpExtensionLoaded (string $phpExtension) {
                // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: phpExtension=%s - CALLED!', $phpExtension));
                if (empty($phpExtension)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "phpExtension" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -840,6 +892,7 @@ Loaded includes:
                $isLoaded = in_array($phpExtension, get_loaded_extensions());
 
                // Return result
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: isLoaded=%d - EXIT!', intval($isLoaded)));
                return $isLoaded;
        }
 
@@ -851,9 +904,11 @@ Loaded includes:
         */
        public function getMilliTime () {
                // Get the time of day as float
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: CALLED!');
                $milliTime = gettimeofday(true);
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: milliTime=%s - EXIT!', $milliTime));
                return $milliTime;
        }
 
@@ -865,6 +920,7 @@ Loaded includes:
         */
        public function idle (int $milliSeconds) {
                // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: milliSeconds=%s - CALLED!', $milliSeconds));
                if ($milliSeconds < 1) {
                        // Throw IAE
                        throw new InvalidArgumentException(sprintf('milliSeconds=%d are not a reasonable value to idle', $milliSeconds));
@@ -889,6 +945,7 @@ Loaded includes:
                }
 
                // Return result
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: hasSlept=%d - EXIT!', intval($hasSlept)));
                return $hasSlept;
        }
 
@@ -901,6 +958,7 @@ Loaded includes:
         */
        protected function isBase64Encoded (string $encodedData) {
                // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: encodedData=%s - CALLED!', $encodedData));
                if (empty($encodedData)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "encodedData" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -910,6 +968,7 @@ Loaded includes:
                $isBase64 = (@base64_decode($encodedData, true) !== false);
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: isBase64=%d - EXIT!', intval($isBase64)));
                return $isBase64;
        }
 
@@ -947,6 +1006,7 @@ Loaded includes:
         */
        protected final function isGenericArrayElementSet (string $keyGroup, string $subGroup, string $key, string $element) {
                // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,element=%s - CALLED!', $keyGroup, $subGroup, $key, $element));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -962,10 +1022,10 @@ Loaded includes:
                }
 
                // 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]);
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: isset=%d - EXIT!', intval($isset)));
                return $isset;
        }
        /**
@@ -979,6 +1039,7 @@ Loaded includes:
         */
        protected final function isGenericArrayKeySet (string $keyGroup, string $subGroup, string $key) {
                // Check parameter
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s - CALLED!', $keyGroup, $subGroup, $key));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -991,10 +1052,10 @@ Loaded includes:
                }
 
                // Is it there?
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key);
                $isset = isset($this->genericArray[$keyGroup][$subGroup][$key]);
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: isset=%d - EXIT!', intval($isset)));
                return $isset;
        }
 
@@ -1008,7 +1069,7 @@ Loaded includes:
         */
        protected final function isGenericArrayGroupSet (string $keyGroup, string $subGroup) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s - CALLED!', $keyGroup, $subGroup));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1021,6 +1082,7 @@ Loaded includes:
                $isset = isset($this->genericArray[$keyGroup][$subGroup]);
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: isset=%d - EXIT!', intval($isset)));
                return $isset;
        }
 
@@ -1035,7 +1097,7 @@ Loaded includes:
         */
        protected final function getGenericSubArray (string $keyGroup, string $subGroup) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',value=' . print_r($this->genericArray[$keyGroup][$subGroup], true));
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s - CALLED!', $keyGroup, $subGroup));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1048,6 +1110,7 @@ Loaded includes:
                }
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: this->genericArray[%s][%s][]=%s - EXIT!', $keyGroup, $subGroup, gettype($this->genericArray[$keyGroup][$subGroup])));
                return $this->genericArray[$keyGroup][$subGroup];
        }
 
@@ -1062,7 +1125,7 @@ Loaded includes:
         */
        protected final function unsetGenericArrayKey (string $keyGroup, string $subGroup, string $key) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s - CALLED!', $keyGroup, $subGroup, $key));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1076,6 +1139,9 @@ Loaded includes:
 
                // Remove it
                unset($this->genericArray[$keyGroup][$subGroup][$key]);
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -1090,7 +1156,7 @@ Loaded includes:
         */
        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);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,element=%s - CALLED!', $keyGroup, $subGroup, $key, $element));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1107,6 +1173,9 @@ Loaded includes:
 
                // Remove it
                unset($this->genericArray[$keyGroup][$subGroup][$key][$element]);
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -1119,9 +1188,9 @@ Loaded includes:
         * @return      void
         * @throws      InvalidArgumentException        If a parameter is not valid
         */
-       protected final function appendStringToGenericArrayKey (string $keyGroup, string $subGroup, $key, string $value, string $appendGlue = '') {
+       protected final function appendStringToGenericArrayKey (string $keyGroup, string $subGroup, string $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);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,value=%s,appendGlue=%s - CALLED!', $keyGroup, $subGroup, $key, $value, $appendGlue));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1141,6 +1210,9 @@ Loaded includes:
                        // Add it
                        $this->genericArray[$keyGroup][$subGroup][$key] = $value;
                }
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -1156,7 +1228,7 @@ Loaded includes:
         */
        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);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,element=%s,value=%s,appendGlue=%s - CALLED!', $keyGroup, $subGroup, $key, $element, $value, $appendGlue));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1179,6 +1251,9 @@ Loaded includes:
                        // Add it
                        $this->setGenericArrayElement($keyGroup, $subGroup, $key, $element, $value);
                }
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -1194,7 +1269,7 @@ Loaded includes:
         */
        protected final function initGenericArrayGroup (string $keyGroup, string $subGroup, bool $forceInit = false) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',forceInit=' . intval($forceInit));
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,forceInit=%d - CALLED!', $keyGroup, $subGroup, intval($forceInit)));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1208,6 +1283,9 @@ Loaded includes:
 
                // Initialize it
                $this->genericArray[$keyGroup][$subGroup] = [];
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -1221,9 +1299,9 @@ Loaded includes:
         * @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) {
+       protected final function initGenericArrayKey (string $keyGroup, string $subGroup, string $key, bool $forceInit = false) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',forceInit=' . intval($forceInit));
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,forceInit=%d - CALLED!', $keyGroup, $subGroup, $key, intval($forceInit)));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1240,6 +1318,9 @@ Loaded includes:
 
                // Initialize it
                $this->genericArray[$keyGroup][$subGroup][$key] = [];
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -1256,7 +1337,7 @@ Loaded includes:
         */
        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));
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,element=%s,forceInit=%d - CALLED!', $keyGroup, $subGroup, $key, $element, intval($forceInit)));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1276,6 +1357,9 @@ Loaded includes:
 
                // Initialize it
                $this->genericArray[$keyGroup][$subGroup][$key][$element] = [];
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -1290,7 +1374,7 @@ Loaded includes:
         */
        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));
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,value[]=%s - CALLED!', $keyGroup, $subGroup, $key, gettype($value)));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1310,7 +1394,7 @@ Loaded includes:
 
                // Return count
                //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], true));
-               //* DEBUG: */ print(__METHOD__ . ': count=' . $count . PHP_EOL);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: count=%d - EXIT!', $count));
                return $count;
        }
 
@@ -1327,7 +1411,7 @@ Loaded includes:
         */
        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));
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,element=%s,value[]=%s - CALLED!', $keyGroup, $subGroup, $key, $element, gettype($value)));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1342,6 +1426,7 @@ Loaded includes:
                        throw new InvalidArgumentException('Parameter "element" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
                } elseif (!$this->isGenericArrayElementSet($keyGroup, $subGroup, $key, $element)) {
                        // Initialize array
+                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: Invoking this->initGenericArrayElement(%s,%s,%s,%s) ...', $keyGroup, $subGroup, $key, $element));
                        $this->initGenericArrayElement($keyGroup, $subGroup, $key, $element);
                }
 
@@ -1350,7 +1435,7 @@ Loaded includes:
 
                // Return count
                //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], true));
-               //* DEBUG: */ print(__METHOD__ . ': count=' . $count . PHP_EOL);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: count=%d - EXIT!', $count));
                return $count;
        }
 
@@ -1366,7 +1451,7 @@ Loaded includes:
         */
        protected final function popGenericArrayElement (string $keyGroup, string $subGroup, string $key) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s - CALLED!', $keyGroup, $subGroup, $key));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1386,7 +1471,7 @@ Loaded includes:
 
                // Return value
                //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], true));
-               //* DEBUG: */ print(__METHOD__ . ': value[' . gettype($value) . ']=' . print_r($value, true) . PHP_EOL);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: value[]=%s - EXIT!', gettype($value)));
                return $value;
        }
 
@@ -1402,7 +1487,7 @@ Loaded includes:
         */
        protected final function shiftGenericArrayElement (string $keyGroup, string $subGroup, string $key) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s - CALLED!', $keyGroup, $subGroup, $key));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1422,7 +1507,7 @@ Loaded includes:
 
                // Return value
                //* DEBUG: */ print(__METHOD__ . ': genericArray=' . print_r($this->genericArray[$keyGroup][$subGroup][$key], true));
-               //* DEBUG: */ print(__METHOD__ . ': value[' . gettype($value) . ']=' . print_r($value, true) . PHP_EOL);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: value[]=%s - EXIT!', gettype($value)));
                return $value;
        }
 
@@ -1436,7 +1521,7 @@ Loaded includes:
         */
        protected final function countGenericArray (string $keyGroup) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s - CALLED!', $keyGroup));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1449,7 +1534,7 @@ Loaded includes:
                $count = count($this->genericArray[$keyGroup]);
 
                // Return it
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',count=' . $count);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: count=%d - EXIT!', $count));
                return $count;
        }
 
@@ -1464,7 +1549,7 @@ Loaded includes:
         */
        protected final function countGenericArrayGroup (string $keyGroup, string $subGroup) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s - CALLED!', $keyGroup, $subGroup));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1480,7 +1565,7 @@ Loaded includes:
                $count = count($this->genericArray[$keyGroup][$subGroup]);
 
                // Return it
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',count=' . $count);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: count=%d - EXIT!', $count));
                return $count;
        }
 
@@ -1496,7 +1581,7 @@ Loaded includes:
         */
        protected final function countGenericArrayElements (string $keyGroup, string $subGroup, string $key) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s - CALLED!', $keyGroup, $subGroup, $key));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1518,7 +1603,7 @@ Loaded includes:
                $count = count($this->genericArray[$keyGroup][$subGroup][$key]);
 
                // Return it
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key . ',count=' . $count);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: count=%d - EXIT!', $count));
                return $count;
        }
 
@@ -1532,7 +1617,7 @@ Loaded includes:
         */
        protected final function getGenericArray (string $keyGroup) {
                // Check parameters
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s - CALLED!', $keyGroup));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1542,6 +1627,7 @@ Loaded includes:
                }
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: this->genericArray[%s][]=%s - EXIT!', $keyGroup, gettype($this->genericArray[$keyGroup])));
                return $this->genericArray[$keyGroup];
        }
 
@@ -1558,7 +1644,7 @@ Loaded includes:
         */
        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));
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,value[]=%s - CALLED!', $keyGroup, $subGroup, $key, gettype($value)));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1575,6 +1661,9 @@ Loaded includes:
 
                // Set value here
                $this->genericArray[$keyGroup][$subGroup][$key] = $value;
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -1589,7 +1678,7 @@ Loaded includes:
         */
        protected final function getGenericArrayKey (string $keyGroup, string $subGroup, string $key) {
                // Check parameters
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s - CALLED!', $keyGroup, $subGroup, $key));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1605,6 +1694,7 @@ Loaded includes:
                }
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: this->genericArray[%s][%s][%s][]=%s - EXIT!', $keyGroup, $subGroup, $key, gettype($this->genericArray[$keyGroup][$subGroup][$key])));
                return $this->genericArray[$keyGroup][$subGroup][$key];
        }
 
@@ -1621,7 +1711,7 @@ Loaded includes:
         */
        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));
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,element=%s,value[]=%s - CALLED!', $keyGroup, $subGroup, $key, $element, gettype($value)));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1641,6 +1731,9 @@ Loaded includes:
 
                // Then set it
                $this->genericArray[$keyGroup][$subGroup][$key][$element] = $value;
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -1656,7 +1749,7 @@ Loaded includes:
         */
        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);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s,element=%s - CALLED!', $keyGroup, $subGroup, $key, $element));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1675,6 +1768,7 @@ Loaded includes:
                }
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: this->genericArray[%s][%s][%s][%s][]=%s - EXIT!', $keyGroup, $subGroup, $key, gettype($this->genericArray[$keyGroup][$subGroup][$key][$element])));
                return $this->genericArray[$keyGroup][$subGroup][$key][$element];
        }
 
@@ -1688,7 +1782,7 @@ Loaded includes:
         */
        protected final function isValidGenericArrayGroup (string $keyGroup, string $subGroup) {
                // Check parameter
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s - CALLED!', $keyGroup, $subGroup));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1701,6 +1795,7 @@ Loaded includes:
                $isValid = (($this->isGenericArrayGroupSet($keyGroup, $subGroup)) && (is_array($this->getGenericSubArray($keyGroup, $subGroup))));
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: isValid=%d - EXIT!', intval($isValid)));
                return $isValid;
        }
 
@@ -1714,7 +1809,7 @@ Loaded includes:
         */
        protected final function isValidGenericArrayKey (string $keyGroup, string $subGroup, string $key) {
                // Check parameters
-               //* NOISY-DEBUG: */ $this->outputLine('[' . __METHOD__ . ':' . __LINE__ . '] keyGroup=' . $keyGroup . ',subGroup=' . $subGroup . ',key=' . $key);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: keyGroup=%s,subGroup=%s,key=%s - CALLED!', $keyGroup, $subGroup, $key));
                if (empty($keyGroup)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "keyGroup" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT);
@@ -1730,6 +1825,7 @@ Loaded includes:
                $isValid = (($this->isGenericArrayKeySet($keyGroup, $subGroup, $key)) && (is_array($this->getGenericArrayKey($keyGroup, $subGroup, $key))));
 
                // Return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: isValid=%d - EXIT!', intval($isValid)));
                return $isValid;
        }
 
@@ -1740,10 +1836,14 @@ Loaded includes:
         */
        protected function initWebOutputInstance () {
                // Init web output instance
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: CALLED!');
                $outputInstance = ObjectFactory::createObjectByConfiguredName('output_class');
 
                // Set it locally
                $this->setWebOutputInstance($outputInstance);
+
+               // Trace mesage
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: EXIT!');
        }
 
        /**
@@ -1754,9 +1854,11 @@ Loaded includes:
         */
        public static final function translateBooleanToYesNo (bool $boolean) {
                // "Translate" it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: boolean=%d - CALLED!', intval($boolean)));
                $translated = ($boolean === true) ? 'Y' : 'N';
 
                // ... and return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: translated=%s - EXIT!', $translated));
                return $translated;
        }
 
@@ -1765,40 +1867,51 @@ Loaded includes:
         * a configured temporary file path to it.
         *
         * @param       $infoInstance   An instance of a SplFileInfo class
-        * @return      $tempInstance   An instance of a SplFileInfo class (temporary file)
+        * @return      $fileInfoInstance       An instance of a SplFileInfo class (temporary file)
         * @throw       PathWriteProtectedException If the path in 'temp_file_path' is write-protected
         * @throws      FileIoException If the file cannot be written
         */
         protected static function createTempPathForFile (SplFileInfo $infoInstance) {
                // Get config entry
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: infoInstance=%s - CALLED!', $infoInstance->__toString()));
                $basePath = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('temp_file_path');
 
                // Is the path writeable?
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: basePath=%s', $basePath));
                if (!is_writable($basePath)) {
                        // Path is write-protected
                        throw new PathWriteProtectedException($infoInstance, self::EXCEPTION_PATH_CANNOT_BE_WRITTEN);
                }
 
                // Add it
-               $tempInstance = new SplFileInfo($basePath . DIRECTORY_SEPARATOR . $infoInstance->getBasename());
+               $fileInfoInstance = new SplFileInfo($basePath . DIRECTORY_SEPARATOR . $infoInstance->getBasename());
 
                // Is it reachable?
-               if (!FrameworkBootstrap::isReachableFilePath($tempInstance)) {
+               if (!FrameworkBootstrap::isReachableFilePath($fileInfoInstance)) {
                        // Not reachable
-                       throw new FileIoException($tempInstance, self::EXCEPTION_FILE_NOT_REACHABLE);
+                       throw new FileIoException($fileInfoInstance, self::EXCEPTION_FILE_NOT_REACHABLE);
                }
 
                // Return it
-               return $tempInstance;
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: fileInfoInstance=%s - EXIT!', $fileInfoInstance->__toString()));
+               return $fileInfoInstance;
         }
 
        /**
         * "Getter" for a printable state name
         *
         * @return      $stateName      Name of the node's state in a printable format
+        * @throws      BadMethodCallException  If this instance doesn't have a callable getter for stateInstance
         * @todo        Move this class away from this monolithic place (not whole class is monolithic)
         */
        public final function getPrintableState () {
+               // Check if getter is there
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-FRAMEWORK-SYSTEM: CALLED!');
+               if (!is_callable($this, 'getStateInstance')) {
+                       // Throw BMCE
+                       throw new BadMethodCallException(sprintf('this=%s has no callable getter for stateInstance', $this->__toString()), FrameworkInterface::EXCEPTION_BAD_METHOD_CALL);
+               }
+
                // Default is 'null'
                $stateName = 'null';
 
@@ -1806,12 +1919,14 @@ Loaded includes:
                $stateInstance = $this->getStateInstance();
 
                // Is it an instance of Stateable?
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: stateInstance[]=%s', gettype($stateInstance)));
                if ($stateInstance instanceof Stateable) {
                        // Then use that state name
                        $stateName = $stateInstance->getStateName();
                }
 
                // Return result
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-FRAMEWORK-SYSTEM: stateName=%s - EXIT!', $stateName));
                return $stateName;
        }