*/
private $filterChains = array();
+ // Exception constants
+ const EXCEPTION_FILTER_CHAIN_INVALID = 0xf10;
+
/**
* Protected constructor
*
* @param $filterGroup Group of the filter
* @param $filterInstance An instance of a filter
* @return void
+ * @throws InvalidFilterChainException If the filter chain is invalid
*/
protected function addFilter ($filterGroup, Filterable $filterInstance) {
+ // Test if the filter is there
+ if (!isset($this->filterChains[$filterGroup])) {
+ // Throw an exception here
+ throw new InvalidFilterChainException(array($this, $filterGroup), self::EXCEPTION_FILTER_CHAIN_INVALID);
+ } // END - if
+
+ // Add the filter
$this->filterChains[$filterGroup]->addFilter($filterInstance);
}
* @param $requestInstance An instance of a request class
* @param $responseInstance An instance of a response class
* @return void
+ * @throws InvalidFilterChainException If the filter chain is invalid
*/
protected function executeFilters ($filterGroup, Requestable $requestInstance, Responseable $responseInstance) {
+ // Test if the filter is there
+ if (!isset($this->filterChains[$filterGroup])) {
+ // Throw an exception here
+ throw new InvalidFilterChainException(array($this, $filterGroup), self::EXCEPTION_FILTER_CHAIN_INVALID);
+ } // END - if
+
+ // Run all filters
$this->filterChains[$filterGroup]->processFilters($requestInstance, $responseInstance);
}