* 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);
// 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