]> git.mxchange.org Git - hub.git/blobdiff - application/hub/main/filter/class_BaseHubFilter.php
Updated 'core'.
[hub.git] / application / hub / main / filter / class_BaseHubFilter.php
index 9cf41bbb20286da179cd950506cb75f3298b45a3..6346a60ec84202c8c069688d2910c77594db15d0 100644 (file)
@@ -2,11 +2,11 @@
 /**
  * A generic filter for hub project
  *
- * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @author             Roland Haeder <webmaster@shipsimu.org>
  * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Hub Developer Team
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Hub Developer Team
  * @license            GNU GPL 3.0 or any newer version
- * @link               http://www.ship-simu.org
+ * @link               http://www.shipsimu.org
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -50,15 +50,24 @@ class BaseHubFilter extends BaseFilter {
         *                            well-formed
         *
         * @param       $messageType            Type of message
-        * @param       $messageContent         Raw message content
+        * @param       $messageData            Raw message data array
         * @param       $packageInstance        An instance of a Receivable class
         * @return      void
         * @todo        Exceptions from renderXmlContent() are currently unhandled
         */
-       protected function genericProcessMessage ($messageType, $messageContent, Receivable $packageInstance) {
+       protected function genericProcessMessage ($messageType, array $messageData, Receivable $packageInstance) {
+               // Make sure the wanted element is there
+               assert(isset($messageData[NetworkPackage::PACKAGE_CONTENT_MESSAGE]));
+               assert(isset($messageData[NetworkPackage::PACKAGE_CONTENT_SENDER]));
+               assert(isset($messageData[NetworkPackage::PACKAGE_CONTENT_HASH]));
+               assert(isset($messageData[NetworkPackage::PACKAGE_CONTENT_TAGS]));
+
                // Get a template instance from the factory
                $templateInstance = XmlTemplateEngineFactory::createXmlTemplateEngineInstance('node_' . $messageType . '_template_class');
 
+               // Get message content
+               $messageContent = $messageData[NetworkPackage::PACKAGE_CONTENT_MESSAGE];
+
                // And render the XML content (aka message)
                $templateInstance->renderXmlContent($messageContent);
 
@@ -97,13 +106,19 @@ class BaseHubFilter extends BaseFilter {
                // Construct an array for pushing it on next stack
                $messageArray = array(
                        // Message data itself
-                       NetworkPackage::MESSAGE_ARRAY_DATA => $this->dataXmlNodes,
+                       NetworkPackage::MESSAGE_ARRAY_DATA   => $this->dataXmlNodes,
                        // Message type (which is $messageType)
-                       NetworkPackage::MESSAGE_ARRAY_TYPE => $messageType
+                       NetworkPackage::MESSAGE_ARRAY_TYPE   => $messageType,
+                       // Message sender
+                       NetworkPackage::MESSAGE_ARRAY_SENDER => $messageData[NetworkPackage::PACKAGE_CONTENT_SENDER],
+                       // Package hash
+                       NetworkPackage::MESSAGE_ARRAY_HASH   => $messageData[NetworkPackage::PACKAGE_CONTENT_HASH],
+                       // Package tags
+                       NetworkPackage::MESSAGE_ARRAY_TAGS   => $messageData[NetworkPackage::PACKAGE_CONTENT_TAGS],
                );
 
                // Push the processed message back on stack
-               $packageInstance->getStackerInstance()->pushNamed(NetworkPackage::STACKER_NAME_PROCESSED_MESSAGE, $messageArray);
+               $packageInstance->getStackInstance()->pushNamed(NetworkPackage::STACKER_NAME_PROCESSED_MESSAGE, $messageArray);
        }
 }