/** * Factory method for filter boxes. Returns filterbox for a given filterbox configuration and list identifier * * @param Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfig $filterboxConfiguration * @return Tx_PtExtlist_Domain_Model_Filter_Filterbox */ public function createInstance(Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfig $filterboxConfiguration) { Tx_PtExtbase_Assertions_Assert::isNotEmptyString($filterboxConfiguration->getListIdentifier(), array('message' => 'List identifier must not be empty 1277889458')); $filterbox = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Filter_Filterbox'); /* @var $filterbox Tx_PtExtlist_Domain_Model_Filter_Filterbox */ $filterbox->_injectFilterboxConfiguration($filterboxConfiguration); $filterbox->_injectFilterboxFactory($this); foreach ($filterboxConfiguration as $filterConfiguration) { $filter = $this->filterFactory->createInstance($filterConfiguration); $filter->_injectFilterbox($filterbox); $filterbox->addFilter($filter, $filter->getFilterIdentifier()); } $sessionPersistenceManager = $this->sessionPersistenceManagerBuilder->getInstance(); $sessionPersistenceManager->registerObjectAndLoadFromSession($filterbox); return $filterbox; }
/** * Get the real filter object from realList * * @return Tx_PtExtlist_Domain_Model_Filter_FilterInterface $realFilterObject * @throws Exception */ protected function getRealFilterObject() { $realFilterConfig = $this->getRealFilterConfig(); $realFilterObject = $this->filterFactory->createInstance($realFilterConfig); if (!is_a($realFilterObject, 'Tx_PtExtlist_Domain_Model_Filter_FilterInterface')) { throw new Exception('The real filter object of type "' . get_class($realFilterObject) . '" is not a filter.', 1302854030); } return $realFilterObject; }