/** * Resolve table type options * @param \EMC\TableBundle\Table\Type\TableTypeInterface $type * @param array $data * @param array $options * @param array $params * @return array */ private function resolveOptions(TableTypeInterface $type, array $data = null, array $options = array(), array $params = array()) { if (null !== $data && !array_key_exists('data', $options)) { $options['data'] = $data; } $_options = $options; if (count($params) > 0) { $options['params'] = $params; } $resolver = $type->getOptionsResolver(); $type->setDefaultOptions($resolver, $this->defaultOptions); $options = $resolver->resolve($options); $availableExport = array(); foreach ($options['export'] as $export) { $availableExport[$export] = $this->exportRegistry->get($export); } unset($options['export']); $options['export'] = $availableExport; $options['_tid'] = $this->generateTableId($type, $_options); $options['_passed_options'] = $_options; $options['_query'] = array('page' => 1, 'sort' => $options['default_sorts'], 'limit' => $options['limit'], 'filter' => null); return $options; }