/**
  * Builds a filter list based on params.
  * @param  array          $params
  * @return App_ListFilter | null
  */
 public function buildFilterList(array $params, $throwEx = false)
 {
     $factory = new \App_ListFilter_FilterFactory();
     $factory->setWhiteList(ServicePackFilterFields::getWhiteList());
     $factory->setSortingWhiteList(ServicePackFilterFields::getWhiteList());
     $filterList = $factory->constructFilter($params);
     $filterList->setResourceId(ServicePackFilterFields::getResourceId());
     $filterList->setValidators(ServicePackFilterFields::getValidatorSpec());
     $filterList->setThrowExceptionOnValidationFail($throwEx);
     if (!$filterList->isValid()) {
         $filterList = $factory->constructFilter(array());
     }
     $filterList->addExtraData('filterType', 'servicePack');
     \App::log()->debug('Unused filters [' . implode(',', $factory->getUnusedList()) . ']');
     return $filterList;
 }