X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fclass_BaseFrameworkSystem.php;h=c3bb447f2bf4f1128259572e845f114645c5a5cf;hp=b65564720e8eaa092f0bf3ad94d0f86d21355c94;hb=df2e651915deb67dc47b37943afb31298d185dc9;hpb=94f39c01ee274ffee017375906b171f9eb418ab3 diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php index b6556472..c3bb447f 100644 --- a/inc/classes/main/class_BaseFrameworkSystem.php +++ b/inc/classes/main/class_BaseFrameworkSystem.php @@ -5,7 +5,7 @@ * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2014 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.org * @@ -148,6 +148,11 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { */ private $sourceInstance = NULL; + /** + * An instance of a UrlSource class + */ + private $urlSourceInstance = NULL; + /** * An instance of a InputStream class */ @@ -223,6 +228,11 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { */ private $socketResource = FALSE; + /** + * Regular expression to use for validation + */ + private $regularExpression = ''; + /** * Package data */ @@ -1028,7 +1038,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * @param $protocolInstance An instance of an HandleableProtocol * @return void */ - public final function setProtocolInstance (HandleableProtocol $protocolInstance = NULL) { + public final function setProtocolInstance (HandleableProtocol $protocolInstance) { $this->protocolInstance = $protocolInstance; } @@ -1081,6 +1091,27 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { return $this->socketResource; } + /** + * Setter for regular expression + * + * @param $regularExpression A valid regular expression + * @return void + */ + public final function setRegularExpression ($regularExpression) { + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput($this->__toString() . '::' . __FUNCTION__ . ': regularExpression=' . $regularExpression . ',previous[' . gettype($this->regularExpression) . ']=' . $this->regularExpression); + $this->regularExpression = $regularExpression; + } + + /** + * Getter for regular expression + * + * @return $regularExpression A valid regular expression + */ + public final function getRegularExpression () { + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput($this->__toString() . '::' . __FUNCTION__ . ': regularExpression[' . gettype($this->regularExpression) . ']=' . $this->regularExpression); + return $this->regularExpression; + } + /** * Setter for helper instance * @@ -1103,7 +1134,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /** * Setter for a Sourceable instance * - * @param $sourceInstance The Sourceable instance + * @param $sourceInstance An instance of a Sourceable class * @return void */ protected final function setSourceInstance (Sourceable $sourceInstance) { @@ -1113,12 +1144,31 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /** * Getter for a Sourceable instance * - * @return $sourceInstance The Sourceable instance + * @return $sourceInstance An instance of a Sourceable class */ protected final function getSourceInstance () { return $this->sourceInstance; } + /** + * Setter for a UrlSource instance + * + * @param $sourceInstance An instance of a UrlSource class + * @return void + */ + protected final function setUrlSourceInstance (UrlSource $urlSourceInstance) { + $this->urlSourceInstance = $urlSourceInstance; + } + + /** + * Getter for a UrlSource instance + * + * @return $urlSourceInstance An instance of a UrlSource class + */ + protected final function getUrlSourceInstance () { + return $this->urlSourceInstance; + } + /** * Getter for a InputStream instance * @@ -1254,24 +1304,40 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } /** - * Setter for InputOutputPointer instance + * Setter for FilePointer instance * - * @param $pointerInstance An instance of an InputOutputPointer class + * @param $pointerInstance An instance of an FilePointer class * @return void */ - protected final function setPointerInstance (InputOutputPointer $pointerInstance) { + protected final function setPointerInstance (FilePointer $pointerInstance) { $this->pointerInstance = $pointerInstance; } /** - * Getter for InputOutputPointer instance + * Getter for FilePointer instance * - * @return $pointerInstance An instance of an InputOutputPointer class + * @return $pointerInstance An instance of an FilePointer class */ public final function getPointerInstance () { return $this->pointerInstance; } + /** + * Unsets pointer instance which triggers a call of __destruct() if the + * instance is still there. This is surely not fatal on already "closed" + * file pointer instances. + * + * I don't want to mess around with above setter by giving it a default + * value NULL as setter should always explicitly only set (existing) object + * instances and NULL is NULL. + * + * @return void + */ + protected final function unsetPointerInstance () { + // Simply it to NULL + $this->pointerInstance = NULL; + } + /** * Setter for Indexable instance * @@ -1844,7 +1910,8 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { // Do we have an entry? if ($this->getResultInstance()->valid() === FALSE) { - throw new InvalidDatabaseResultException(array($this, $this->getResultInstance()), DatabaseResult::EXCEPTION_INVALID_DATABASE_RESULT); + // @TODO Move the constant to e.g. BaseDatabaseResult when there is a non-cached database result available + throw new InvalidDatabaseResultException(array($this, $this->getResultInstance()), CachedDatabaseResult::EXCEPTION_INVALID_DATABASE_RESULT); } // END - if // Get next entry @@ -1890,7 +1957,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { $fieldValue = $fieldArray[$fieldName]; } else { // Missing field entry, may require debugging - self::createDebugInstance(__CLASS__)->debugOutput($this->__toString() . ':fieldname=' . $fieldName . ' not found!'); + self::createDebugInstance(__CLASS__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']:fieldName=' . $fieldName . ' not found!'); } // Return it @@ -2882,6 +2949,28 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { return $isValid; } + /** + * Initializes the web output instance + * + * @return void + */ + protected function initWebOutputInstance () { + // Get application instance + $applicationInstance = Registry::getRegistry()->getInstance('app'); + + // Is this a response instance? + if ($this instanceof Responseable) { + // Then set it in application instance + $applicationInstance->setResponseInstance($this); + } // END - if + + // Init web output instance + $outputInstance = ObjectFactory::createObjectByConfiguredName('output_class', array($applicationInstance)); + + // Set it locally + $this->setWebOutputInstance($outputInstance); + } + /** * Translates boolean TRUE to 'Y' and FALSE to 'N' *