/**
  * 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;
 }