/** * Creates an instance of a filter for a given configuration * * @param Tx_PtExtlist_Domain_Configuration_Filters_FilterConfig $filterConfig * @return Tx_PtExtlist_Domain_Model_Filter_FilterInterface */ public function createInstance(Tx_PtExtlist_Domain_Configuration_Filters_FilterConfig $filterConfig) { $filter = $this->createFilterObject($filterConfig->getFilterClassName()); /* @var $filter Tx_PtExtlist_Domain_Model_Filter_FilterInterface */ $filter->_injectFilterConfig($filterConfig); $sessionPersistenceManager = $this->sessionPersistenceManagerBuilder->getInstance(); // TODO check whether filter interface should extend session persistable interface $sessionPersistenceManager->registerObjectAndLoadFromSession($filter); $filter->_injectDataBackend($this->dataBackendFactory->getDataBackendInstanceByListIdentifier($filterConfig->getListIdentifier())); $filter->init(); return $filter; }