X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fregistration%2Fclass_BaseRegistration.php;h=1ebf7e5b8d52eba657c6c8d6fc1481a823a01e40;hp=e2cd7812635dec18f43aafa4ccf8f15f0413877c;hb=df33e264f3246f80756d7e2da55d7f7c40f9088c;hpb=36dfbfe39c864c7a426573df03c8ab59ff968737 diff --git a/inc/classes/main/registration/class_BaseRegistration.php b/inc/classes/main/registration/class_BaseRegistration.php index e2cd781..1ebf7e5 100644 --- a/inc/classes/main/registration/class_BaseRegistration.php +++ b/inc/classes/main/registration/class_BaseRegistration.php @@ -1,12 +1,12 @@ - * @version 0.3.0 - * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software * @license GNU GPL 3.0 or any newer version - * @link http://www.mxchange.org + * @link http://www.ship-simu.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 @@ -19,21 +19,21 @@ * 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 . + * along with this program. If not, see . */ -abstract class BaseRegistration extends BaseFrameworkSystem implements UserRegister { +class BaseRegistration extends BaseFrameworkSystem { /** - * Instance of a request class + * Pre-registration filter chain */ - private $requestInstance = null; + private $preRegistrationFilter = null; /** - * Instance of a response class + * Pre-registration filter chain */ - private $responseInstance = null; + private $postRegistrationFilter = null; /** - * Private constructor + * Protected constructor * * @param $className Name of the class * @return void @@ -48,41 +48,56 @@ abstract class BaseRegistration extends BaseFrameworkSystem implements UserRegis } /** - * Setter for request instance + * Initialize filters. This must be done before you can use them * - * @param $requestInstance An instance of a Requestable class * @return void */ - public final function setRequestInstance (Requestable $requestInstance) { - $this->requestInstance = $requestInstance; + protected function initFilterChains () { + // Pre/post-registration filters + $this->preRegistrationFilter = ObjectFactory::createObjectByConfiguredName('filter_chain_class'); + $this->postRegistrationFilter = ObjectFactory::createObjectByConfiguredName('filter_chain_class'); } /** - * Getter for request instance + * Adds a filter to the pre filter chain * - * @return $requestInstance An instance of a Requestable class + * @param $filterInstance An instance of a filter + * @return void + */ + public function addPreFilter (Filterable $filterInstance) { + // Add the pre filter + $this->preRegistrationFilter->addFilter($filterInstance); + } + + /** + * Adds a filter to the post filter chain + * + * @param $filterInstance An instance of a filter + * @return void */ - public final function getRequestInstance () { - return $this->requestInstance; + public function addPostFilter (Filterable $filterInstance) { + // Add the post filter + $this->postRegistrationFilter->addFilter($filterInstance); } /** - * Setter for response instance + * Executes all pre filters * - * @param $responseInstance An instance of a Responseable class * @return void */ - public final function setResponseInstance (Responseable $responseInstance) { - $this->responseInstance = $responseInstance; + protected function executePreFilters () { + // Execute all pre filters + $this->preRegistrationFilter->processFilters($this->getRequestInstance(), $this->getResponseInstance()); } /** - * Getter for response instance + * Executes all post filters * - * @return $responseInstance An instance of a Responseable class + * @return void */ - public final function getResponseInstance () { - return $this->responseInstance; + protected function executePostFilters () { + // Execute all post filters + $this->postRegistrationFilter->processFilters($this->getRequestInstance(), $this->getResponseInstance()); } }