]> git.mxchange.org Git - hub.git/blobdiff - application/hub/main/tags/package/class_PackageTags.php
Updated 'core' + renamed 'main' -> 'classes'.
[hub.git] / application / hub / main / tags / package / class_PackageTags.php
diff --git a/application/hub/main/tags/package/class_PackageTags.php b/application/hub/main/tags/package/class_PackageTags.php
deleted file mode 100644 (file)
index b2985f7..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-/**
- * A Package tags class
- *
- * @author             Roland Haeder <webmaster@shipsimu.org>
- * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Hub Developer Team
- * @license            GNU GPL 3.0 or any newer version
- * @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
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-class PackageTags extends BaseTags implements Tagable {
-       // Exception codes
-       const EXCEPTION_INVALID_TAG = 0x160;
-
-       /**
-        * Last found protocol instance
-        */
-       private $lastProtocol = NULL;
-
-       /**
-        * Last found recipient type
-        */
-       private $lastRecipientType = 'invalid';
-
-       /**
-        * Protected constructor
-        *
-        * @return      void
-        */
-       protected function __construct () {
-               // Call parent constructor
-               parent::__construct(__CLASS__);
-
-               // Init the object registry
-               $this->initObjectRegistry();
-       }
-
-       /**
-        * Creates an instance of this class
-        *
-        * @return      $tagsInstance   An instance of a Tagable class
-        */
-       public static final function createPackageTags () {
-               // Get new instance
-               $tagsInstance = new PackageTags();
-
-               // Return the prepared instance
-               return $tagsInstance;
-       }
-
-       /**
-        * Loads the XML file (our "object registry") and saves an instance for
-        * faster re-use.
-        *
-        * @return      void
-        */
-       private function initObjectRegistry () {
-               // Output debug message
-               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TAGS[' . __METHOD__ . ':' . __LINE__ . ']: Initializing object registry - CALLED!');
-
-               // Get the application instance
-               $applicationInstance = Registry::getRegistry()->getInstance('app');
-
-               // Get a XML template instance
-               $templateInstance = XmlTemplateEngineFactory::createXmlTemplateEngineInstance('node_object_registry_template_class');
-
-               // Set it for later use
-               $this->setTemplateInstance($templateInstance);
-
-               // Read the XML file
-               $this->getTemplateInstance()->loadXmlTemplate();
-
-               // Render the XML content
-               $this->getTemplateInstance()->renderXmlContent();
-
-               // Output debug message
-               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TAGS[' . __METHOD__ . ':' . __LINE__ . ']: Initializing object registry - EXIT!');
-       }
-
-       /**
-        * Extracts the tags from given package data
-        *
-        * @param       $packageData    Raw package data
-        * @return      void
-        */
-       private function extractTagsFromPackageData (array $packageData) {
-               // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TAGS[' . __METHOD__ . ':' . __LINE__ . ']: packageData=' . print_r($packageData, TRUE));
-
-               /*
-                * We take a look at the tags (in most cases only one is needed) so
-                * first we need the content data splitted up into all it's parts.
-                */
-               $contentData = explode(NetworkPackage::PACKAGE_MASK_SEPARATOR, $packageData[NetworkPackage::PACKAGE_DATA_CONTENT]);
-
-               // Get the tags and store them locally
-               $this->setTags(explode(NetworkPackage::PACKAGE_TAGS_SEPARATOR, $contentData[NetworkPackage::INDEX_TAGS]));
-       }
-
-       /**
-        * Verifies all tags by looking them up in an XML file. This method is
-        * the key method to make sure only known objects are being distributed and
-        * shared over the whole hub-network. So if the "tag" (let's better say
-        * object type) isn't found in that XML the package won't be distributed.
-        *
-        * @param       $packageData                    Raw package data
-        * @return      void
-        * @throws      InvalidTagException             If a provided tag from the package data is invalid
-        */
-       private function verifyAllTags (array $packageData) {
-               // Get the registry
-               $objectRegistryInstance = ObjectTypeRegistryFactory::createObjectTypeRegistryInstance();
-
-               // "Walk" over all tags
-               foreach ($this->getTags() as $tag) {
-                       // Debug output
-                       self::createDebugInstance(__CLASS__)->debugOutput('TAGS[' . __METHOD__ . ':' . __LINE__ . ']: Validating tag ' . $tag . ' ...');
-
-                       // Get an array from this tag
-                       $entry = $objectRegistryInstance->getArrayFromKey(XmlObjectRegistryTemplateEngine::OBJECT_TYPE_DATA_NAME, $tag);
-
-                       /*
-                        * If it is no array or the array is empty or an entry is missing
-                        * the entry is invalid.
-                        */
-                       if ((!is_array($entry)) || (count($entry) == 0) || (!isset($entry[XmlObjectRegistryTemplateEngine::OBJECT_TYPE_DATA_PROTOCOL])) || (!isset($entry[XmlObjectRegistryTemplateEngine::OBJECT_TYPE_DATA_RECIPIENT_TYPE]))) {
-                               // Invalid entry found
-                               throw new InvalidTagException(array($this, $tag), self::EXCEPTION_INVALID_TAG);
-                       } // END - if
-
-                       // Now save the last discovered protocol/recipient type
-                       $this->lastProtocol      = ProtocolHandlerFactory::createProtocolHandlerFromPackageData($packageData);
-                       $this->lastRecipientType = $entry[XmlObjectRegistryTemplateEngine::OBJECT_TYPE_DATA_RECIPIENT_TYPE];
-               } // END - foreach
-       }
-
-       /**
-        * Chooses the right protocol from given package data
-        *
-        * @param       $packageData    Raw package data
-        * @return      $lastProtocol   An instance of the last used HandleableProtocol class
-        */
-       public function chooseProtocolFromPackageData (array $packageData) {
-               // Extract the tags
-               $this->extractTagsFromPackageData($packageData);
-
-               // Now we need to verify every single tag
-               $this->verifyAllTags($packageData);
-
-               // Return the last (and only) found protocol (e.g. 'tcp' is very usual)
-               return $this->lastProtocol;
-       }
-
-       /**
-        * Checks whether the given package data is accepted by the listener
-        *
-        * @param       $packageData            Raw package data
-        * @param       $listenerInstance       A Listenable instance
-        * @return      $accepts                        Whether it is accepted
-        */
-       public function ifPackageDataIsAcceptedByListener (array $packageData, Listenable $listenerInstance) {
-               // Extract the tags
-               $this->extractTagsFromPackageData($packageData);
-
-               // Now we need to verify every single tag
-               $this->verifyAllTags($packageData);
-
-               // Now simply check it out
-               $accepts = (($this->lastRecipientType == $listenerInstance->getListenerType()) && ($listenerInstance->getListenerType() != 'invalid'));
-
-               // And return the result
-               return $accepts;
-       }
-}
-
-// [EOF]
-?>