]> git.mxchange.org Git - hub.git/blobdiff - application/hub/main/helper/hub/connection/class_HubSelfConnectHelper.php
Removed obsolete parameter 'applicationInstance' from all template engines
[hub.git] / application / hub / main / helper / hub / connection / class_HubSelfConnectHelper.php
index 9f333fe21e76d5c327ccd956efe97fc312356f1d..552e031a0658992b9261e077679cf7f8345bb257 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @author             Roland Haeder <webmaster@ship-simu.org>
  * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Core Developer Team
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2011 Core Developer Team
  * @license            GNU GPL 3.0 or any newer version
  * @link               http://www.ship-simu.org
  * @todo               Find an interface for hub helper
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 class HubSelfConnectHelper extends BaseHubHelper implements HelpableHub {
+       /**
+        * Package tags
+        */
+       private $packageTags = array('self_connect');
+
        /**
         * Protected constructor
         *
@@ -31,17 +36,24 @@ class HubSelfConnectHelper extends BaseHubHelper implements HelpableHub {
        protected function __construct () {
                // Call parent constructor
                parent::__construct(__CLASS__);
+
+               // Set recipient type
+               $this->setRecipientType(NetworkPackage::NETWORK_TARGET_SELF);
        }
 
        /**
         * Creates the helper class
         *
+        * @param       $nodeInstance           An instance of a NodeHelper class
         * @return      $helperInstance         A prepared instance of this helper
         */
-       public final static function createHubSelfConnectHelper () {
+       public static final function createHubSelfConnectHelper (NodeHelper $nodeInstance) {
                // Get new instance
                $helperInstance = new HubSelfConnectHelper();
 
+               // Set the node instance
+               $helperInstance->setNodeInstance($nodeInstance);
+
                // Return the prepared instance
                return $helperInstance;
        }
@@ -52,7 +64,32 @@ class HubSelfConnectHelper extends BaseHubHelper implements HelpableHub {
         * @return      void
         */
        public function loadDescriptorXml () {
-               $this->partialStub('Please implement this method.');
+               // Debug message
+               $this->debugOutput('HELPER: Attempting self-connect...');
+
+               // Get the application instance
+               $applicationInstance = Registry::getRegistry()->getInstance('app');
+
+               // Get a XML template instance
+               $templateInstance = ObjectFactory::createObjectByConfiguredName('node_self_connect_template_class');
+
+               // Disable language support
+               $templateInstance->enableLanguageSupport(false);
+
+               /*
+                * Enable compacting/rewriting of the  XML to save bandwidth from XML
+                * comments. This is expensive and should be avoided in general.
+                */
+               $templateInstance->enableXmlCompacting();
+
+               // Set it for later use
+               $this->setTemplateInstance($templateInstance);
+
+               // Read the XML descriptor
+               $this->getTemplateInstance()->loadSelfConnectTemplate();
+
+               // Render the XML content
+               $this->getTemplateInstance()->renderXmlContent();
        }
 
        /**
@@ -73,6 +110,15 @@ class HubSelfConnectHelper extends BaseHubHelper implements HelpableHub {
                // Next, feed the content in. The network package class is a pipe-through class.
                $packageInstance->enqueueRawDataFromTemplate($this);
        }
+
+       /**
+        * Getter for package tags in a simple array
+        *
+        * @return      $tags   An array with all tags for the currently handled package
+        */
+       public final function getPackageTags () {
+               return $this->packageTags;
+       }
 }
 
 // [EOF]