]> git.mxchange.org Git - core.git/blobdiff - framework/main/classes/template/image/class_ImageTemplateEngine.php
Continued:
[core.git] / framework / main / classes / template / image / class_ImageTemplateEngine.php
index 855744872c939d714f660d7227e8e486f6825aa3..80a81446f2b2d1d3ce5141f7720c93ef12970fb7 100644 (file)
@@ -4,14 +4,16 @@ namespace Org\Mxchange\CoreFramework\Template\Engine;
 
 // Import framework stuff
 use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
-use Org\Mxchange\CoreFramework\Factory\ObjectFactory;
+use Org\Mxchange\CoreFramework\Factory\Object\ObjectFactory;
 use Org\Mxchange\CoreFramework\Filesystem\InvalidDirectoryException;
-use Org\Mxchange\CoreFramework\Parser\Xml\XmlParser;
+use Org\Mxchange\CoreFramework\Helper\Application\ApplicationHelper;
+use Org\Mxchange\CoreFramework\Image\BaseImage;
+use Org\Mxchange\CoreFramework\Parser\Parseable;
 use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
 use Org\Mxchange\CoreFramework\Response\Responseable;
 use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
 use Org\Mxchange\CoreFramework\Template\Engine\BaseTemplateEngine;
-use Org\Mxchange\CoreFramework\Utils\String\StringUtils;
+use Org\Mxchange\CoreFramework\Utils\Strings\StringUtils;
 
 // Import SPL stuff
 use \SplFileInfo;
@@ -22,7 +24,7 @@ use \UnexpectedValueException;
  *
  * @author             Roland Haeder <webmaster@shipsimu.org>
  * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2020 Core Developer Team
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2021 Core Developer Team
  * @license            GNU GPL 3.0 or any newer version
  * @link               http://www.shipsimu.org
  *
@@ -74,12 +76,17 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         */
        private $currMainNode = '';
 
+       /**
+        * Instance of the image
+        */
+       private $imageInstance = NULL;
+
        /**
         * Protected constructor
         *
         * @return      void
         */
-       protected function __construct () {
+       private function __construct () {
                // Call parent constructor
                parent::__construct(__CLASS__);
        }
@@ -99,7 +106,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                $templateInstance = new ImageTemplateEngine();
 
                // Get the application instance from registry
-               $applicationInstance = GenericRegistry::getRegistry()->getInstance('application');
+               $applicationInstance = ApplicationHelper::getSelfInstance();
 
                // Determine base path
                $templateBasePath = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('application_base_path') . $applicationInstance->getAppShortName(). '/';
@@ -108,9 +115,6 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                if (empty($templateBasePath)) {
                        // Base path is empty
                        throw new UnexpectedValueException(sprintf('[%s:%d] Variable templateBasePath is empty.', $templateInstance->__toString(), __LINE__), self::EXCEPTION_UNEXPECTED_EMPTY_STRING);
-               } elseif (!is_string($templateBasePath)) {
-                       // Is not a string
-                       throw new UnexpectedValueException(sprintf('[%s:%d] %s is not a string with a base path.', $templateInstance->__toString(), __LINE__, $templateBasePath), self::EXCEPTION_INVALID_STRING);
                } elseif (!is_dir($templateBasePath)) {
                        // Is not a path
                        throw new InvalidDirectoryException(array($templateInstance, $templateBasePath), self::EXCEPTION_INVALID_PATH_NAME);
@@ -163,6 +167,25 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                return $this->subNodes;
        }
 
+       /**
+        * Setter for image instance
+        *
+        * @param       $imageInstance  An instance of an image
+        * @return      void
+        */
+       public final function setImageInstance (BaseImage $imageInstance) {
+               $this->imageInstance = $imageInstance;
+       }
+
+       /**
+        * Getter for image instance
+        *
+        * @return      $imageInstance  An instance of an image
+        */
+       public final function getImageInstance () {
+               return $this->imageInstance;
+       }
+
        /**
         * Handles the start element of an XML resource
         *
@@ -172,7 +195,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @return      void
         * @throws      InvalidXmlNodeException         If an unknown/invalid XML node name was found
         */
-       public function startElement ($resource, $element, array $attributes) {
+       public function startElement ($resource, string $element, array $attributes) {
                // Initial method name which will never be called...
                $methodName = 'initImage';
 
@@ -189,7 +212,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                        $methodName = 'setImageProperty' . StringUtils::convertToClassName($element);
                } elseif ($element != 'image') {
                        // Invalid node name found
-                       throw new InvalidXmlNodeException(array($this, $element, $attributes), XmlParser::EXCEPTION_XML_NODE_UNKNOWN);
+                       throw new InvalidXmlNodeException(array($this, $element, $attributes), Parseable::EXCEPTION_XML_NODE_UNKNOWN);
                }
 
                // Call method
@@ -205,25 +228,22 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @return      void
         * @throws      XmlNodeMismatchException        If current main node mismatches the closing one
         */
-       public function finishElement ($resource, $nodeName) {
-               // Make all lower-case
-               $nodeName = strtolower($nodeName);
-
+       public function finishElement ($resource, string $nodeName) {
                // Does this match with current main node?
                //* DEBUG: */ echo "END: &gt;".$nodeName."&lt;<br />\n";
                if (($nodeName != $this->getCurrMainNode()) && (in_array($nodeName, $this->getMainNodes()))) {
                        // Did not match!
-                       throw new XmlNodeMismatchException (array($this, $nodeName, $this->getCurrMainNode()), XmlParser::EXCEPTION_XML_NODE_MISMATCH);
+                       throw new XmlNodeMismatchException (array($this, $nodeName, $this->getCurrMainNode()), Parseable::EXCEPTION_XML_NODE_MISMATCH);
                } elseif (in_array($nodeName, $this->getSubNodes())) {
                        // Silently ignore sub nodes
                        return;
                }
 
                // Construct method name
-               $methodName = 'finish' . StringUtils::convertToClassName($nodeName);
+               $methodName = sprintf('finish%s', StringUtils::convertToClassName($nodeName));
 
                // Call the corresponding method
-               call_user_func_array(array($this->getImageInstance(), $methodName), array());
+               call_user_func_array(array($this->getImageInstance(), $methodName), []);
        }
 
        /**
@@ -234,7 +254,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @return      void
         * @todo        Find something usefull with this!
         */
-       public function characterHandler ($resource, $characters) {
+       public function characterHandler ($resource, string $characters) {
                // Trim all spaces away
                $characters = trim($characters);
 
@@ -242,7 +262,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                if (empty($characters)) {
                        // Then skip it silently
                        return;
-               } // END - if
+               }
 
                // Unfinished work!
                $this->partialStub('Handling extra characters is not yet supported!');
@@ -264,7 +284,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @param       $imageType      Code fragment or direct value holding the image type
         * @return      void
         */
-       private function setImageType ($imageType) {
+       private function setImageType (string $imageType) {
                // Set group to general
                $this->setVariableGroup('general');
 
@@ -275,7 +295,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
                $className = StringUtils::convertToClassName($imageType.'_image');
 
                // And try to initiate it
-               $this->setImageInstance(ObjectFactory::createObjectByName($className, array($this)));
+               $this->setImageInstance(ObjectFactory::createObjectByName($className, [$this]));
 
                // Set current main node to type
                $this->currMainNode = 'type';
@@ -344,7 +364,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @return      void
         * @see         ImageTemplateEngine::setImageResolution
         */
-       private function setImageImageString ($groupable = 'single') {
+       private function setImageImageString (string $groupable = 'single') {
                // Call the image class
                $this->getImageInstance()->initImageString($groupable);
 
@@ -358,7 +378,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @param       $imageName      Name of the image
         * @return      void
         */
-       private function setImagePropertyName ($imageName) {
+       private function setImagePropertyName (string $imageName) {
                // Call the image class
                $this->getImageInstance()->setImageName($imageName);
        }
@@ -369,7 +389,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @param       $width  Width of the image or variable
         * @return      void
         */
-       private function setImagePropertyWidth ($width) {
+       private function setImagePropertyWidth (int $width) {
                // Call the image class
                $this->getImageInstance()->setWidth($width);
        }
@@ -380,7 +400,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @param       $height Height of the image or variable
         * @return      void
         */
-       private function setImagePropertyHeight ($height) {
+       private function setImagePropertyHeight (int $height) {
                // Call the image class
                $this->getImageInstance()->setHeight($height);
        }
@@ -424,7 +444,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @param       $stringName             String name (identifier)
         * @return      void
         */
-       private function setImagePropertyStringName ($stringName) {
+       private function setImagePropertyStringName (string $stringName) {
                // Call the image class
                $this->getImageInstance()->setStringName($stringName);
        }
@@ -435,7 +455,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @param       $fontSize       Size of the font
         * @return      void
         */
-       private function setImagePropertyFontSize ($fontSize) {
+       private function setImagePropertyFontSize (int $fontSize) {
                // Call the image class
                $this->getImageInstance()->setFontSize($fontSize);
        }
@@ -446,7 +466,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @param       $imageString    Image string to set
         * @return      void
         */
-       private function setImagePropertyText ($imageString) {
+       private function setImagePropertyText (string $imageString) {
                // Call the image class
                $this->getImageInstance()->setString($imageString);
        }
@@ -457,7 +477,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @param       $x      X coordinate
         * @return      void
         */
-       private function setImagePropertyX ($x) {
+       private function setImagePropertyX (int $x) {
                // Call the image class
                $this->getImageInstance()->setX($x);
        }
@@ -468,7 +488,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         * @param       $y      Y coordinate
         * @return      void
         */
-       private function setImagePropertyY ($y) {
+       private function setImagePropertyY (int $y) {
                // Call the image class
                $this->getImageInstance()->setY($y);
        }
@@ -499,6 +519,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         *
         * @param       $responseInstance       An instance of a Responseable class
         * @return      void
+        * @todo        Nothing to really "transfer" here?
         */
        public function transferToResponse (Responseable $responseInstance) {
                // Set the image instance
@@ -512,7 +533,7 @@ class ImageTemplateEngine extends BaseTemplateEngine implements CompileableTempl
         *                                              located in 'image' by default
         * @return      void
         */
-       public function loadImageTemplate ($template) {
+       public function loadImageTemplate (string $template) {
                // Set template type
                $this->setTemplateType(FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('image_template_type'));