// Import framework stuff
use Org\Mxchange\CoreFramework\Generic\BaseDecorator;
use Org\Mxchange\CoreFramework\Response\Responseable;
-use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
+use Org\Mxchange\CoreFramework\Template\Xml\CompileableXmlTemplate;
use Org\Mxchange\CoreFramework\Traits\Template\CompileableTemplateTrait;
/**
* 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 XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableTemplate {
+class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableXmlTemplate {
// Load traits
use CompileableTemplateTrait;
/**
* Creates an instance of the class TemplateEngine and prepares it for usage
*
- * @param $innerTemplateInstance A CompileableTemplate instance
+ * @param $innerTemplateInstance A CompileableXmlTemplate instance
* @return $templateInstance An instance of TemplateEngine
*/
- public static final function createXmlRewriterTemplateDecorator (CompileableTemplate $innerTemplateInstance) {
+ public static final function createXmlRewriterTemplateDecorator (CompileableXmlTemplate $innerTemplateInstance) {
// Get a new instance
$templateInstance = new XmlRewriterTemplateDecorator();
* @return void
* @todo Find something useful with this!
*/
- public function characterHandler ($resource, $characters) {
+ public function characterHandler ($resource, string $characters) {
// Call the inner class' method but trim the characters before
$this->getTemplateInstance()->characterHandler($resource, trim($characters));
}
*/
private $languageSupport = true;
- /**
- * XML compacting is disabled by default
- */
- private $xmlCompacting = false;
-
/**
* Protected constructor
*
$this->setRawTemplateData($rawData);
}
- /**
- * Renders the given XML content
- *
- * @param $content Valid XML content or if not set the current loaded raw content
- * @return void
- * @throws XmlParserException If an XML error was found
- */
- public function renderXmlContent (string $content = NULL) {
- // Is the content set?
- if (is_null($content)) {
- // Get current content
- $content = $this->getRawTemplateData();
- }
-
- // Get a XmlParser instance
- $parserInstance = ObjectFactory::createObjectByConfiguredName('xml_parser_class', array($this));
-
- // Check if XML compacting is enabled
- if ($this->isXmlCompactingEnabled()) {
- // Yes, so get a decorator class for transparent compacting
- $parserInstance = ObjectFactory::createObjectByConfiguredName('deco_compacting_xml_parser_class', array($parserInstance));
- }
-
- // Parse the XML document
- $parserInstance->parseXmlContent($content);
- }
-
/**
* Enables or disables language support
*
return $this->languageSupport;
}
- /**
- * Enables or disables XML compacting
- *
- * @param $xmlCompacting New XML compacting setting
- * @return void
- */
- public final function enableXmlCompacting (bool $xmlCompacting = true) {
- $this->xmlCompacting = $xmlCompacting;
- }
-
- /**
- * Checks whether XML compacting is enabled
- *
- * @return $xmlCompacting Whether XML compacting is enabled or disabled
- */
- public final function isXmlCompactingEnabled () {
- return $this->xmlCompacting;
- }
-
/**
* Removes all commentd, tabs and new-line characters to compact the content
*
* @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);
* @param $characters Characters to handle
* @return void
*/
- public function characterHandler ($resource, $characters) {
+ public function characterHandler ($resource, string $characters) {
// Trim all spaces away
$characters = trim($characters);
* @return void
* @todo Find something useful with this!
*/
- public function characterHandler ($resource, $characters) {
+ public function characterHandler ($resource, string $characters) {
// Trim all spaces away
$characters = trim($characters);
use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
use Org\Mxchange\CoreFramework\Template\Engine\BaseTemplateEngine;
+use Org\Mxchange\CoreFramework\Template\Xml\CompileableXmlTemplate;
use Org\Mxchange\CoreFramework\Traits\Stacker\StackableTrait;
+use Org\Mxchange\CoreFramework\Traits\Template\CompileableTemplateTrait;
use Org\Mxchange\CoreFramework\Utils\String\StringUtils;
// Import SPL stuff
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-abstract class BaseXmlTemplateEngine extends BaseTemplateEngine {
+abstract class BaseXmlTemplateEngine extends BaseTemplateEngine implements CompileableXmlTemplate {
// Load traits
+ use CompileableTemplateTrait;
use StackableTrait;
/**
protected $dependencyContent = [];
/**
- * Template engine instance
+ * XML compacting is disabled by default
*/
- private $templateInstance = NULL;
+ private $xmlCompacting = false;
/**
* Protected constructor
return $this->subNodes;
}
- /**
- * Setter for template engine instances
- *
- * @param $templateInstance An instance of a template engine class
- * @return void
- */
- protected final function setTemplateInstance (CompileableTemplate $templateInstance) {
- $this->templateInstance = $templateInstance;
- }
-
- /**
- * Getter for template engine instances
- *
- * @return $templateInstance An instance of a template engine class
- */
- protected final function getTemplateInstance () {
- return $this->templateInstance;
- }
-
/**
* Read XML variables by calling readVariable() with 'general' as
* variable stack.
call_user_func_array(array($this, $methodName), array());
}
+ /**
+ * Renders the given XML content
+ *
+ * @param $content Valid XML content or if not set the current loaded raw content
+ * @return void
+ * @throws XmlParserException If an XML error was found
+ */
+ public function renderXmlContent (string $content = NULL) {
+ // Is the content set?
+ if (is_null($content)) {
+ // Get current content
+ $content = $this->getRawTemplateData();
+ }
+
+ // Get a XmlParser instance
+ $parserInstance = ObjectFactory::createObjectByConfiguredName('xml_parser_class', array($this));
+
+ // Check if XML compacting is enabled
+ if ($this->isXmlCompactingEnabled()) {
+ // Yes, so get a decorator class for transparent compacting
+ $parserInstance = ObjectFactory::createObjectByConfiguredName('deco_compacting_xml_parser_class', array($parserInstance));
+ }
+
+ // Parse the XML document
+ $parserInstance->parseXmlContent($content);
+ }
+
+ /**
+ * Enables or disables XML compacting
+ *
+ * @param $xmlCompacting New XML compacting setting
+ * @return void
+ */
+ public final function enableXmlCompacting (bool $xmlCompacting = true) {
+ $this->xmlCompacting = $xmlCompacting;
+ }
+
+ /**
+ * Checks whether XML compacting is enabled
+ *
+ * @return $xmlCompacting Whether XML compacting is enabled or disabled
+ */
+ public final function isXmlCompactingEnabled () {
+ return $this->xmlCompacting;
+ }
+
}
*/
function renameVariable (string $oldName, string $newName);
- /**
- * Renders the given XML content
- *
- * @param $content Valid XML content or if not set the current loaded raw content
- * @return void
- * @throws XmlParserException If an XML error was found
- */
- function renderXmlContent (string $content = NULL);
-
/**
* Enables or disables language support
*
*/
function isLanguageSupportEnabled ();
- /**
- * Enables or disables XML compacting
- *
- * @param $xmlCompacting New XML compacting setting
- * @return void
- */
- function enableXmlCompacting (bool $xmlCompacting = true);
-
- /**
- * Checks whether XML compacting is enabled
- *
- * @return $xmlCompacting Whether XML compacting is enabled or disabled
- */
- function isXmlCompactingEnabled ();
-
- /**
- * Removes all comments, tabs and new-line charcters to compact the content
- *
- * @param $uncompactedContent The uncompacted content
- * @return $compactedContent The compacted content
- */
- function compactContent (string $uncompactedContent);
-
/**
* Getter for given variable group
*
--- /dev/null
+<?php
+// Own namespace
+namespace Org\Mxchange\CoreFramework\Template\Xml;
+
+// Import framework stuff
+use Org\Mxchange\CoreFramework\Template\CompileableTemplate;
+
+/**
+ * An interface for template engines
+ *
+ * @author Roland Haeder <webmaster@shipsimu.org>
+ * @version 0.0.0
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2020 Core 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/>.
+ */
+interface CompileableXmlTemplate extends CompileableTemplate {
+
+ /**
+ * Renders the given XML content
+ *
+ * @param $content Valid XML content or if not set the current loaded raw content
+ * @return void
+ * @throws XmlParserException If an XML error was found
+ */
+ function renderXmlContent (string $content = NULL);
+
+ /**
+ * Enables or disables XML compacting
+ *
+ * @param $xmlCompacting New XML compacting setting
+ * @return void
+ */
+ function enableXmlCompacting (bool $xmlCompacting = true);
+
+ /**
+ * Checks whether XML compacting is enabled
+ *
+ * @return $xmlCompacting Whether XML compacting is enabled or disabled
+ */
+ function isXmlCompactingEnabled ();
+
+ /**
+ * Removes all comments, tabs and new-line charcters to compact the content
+ *
+ * @param $uncompactedContent The uncompacted content
+ * @return $compactedContent The compacted content
+ */
+ function compactContent (string $uncompactedContent);
+
+}