156 $this->connection =
$resource->getConnection();
223 ? $this->createResultCollection()
224 : $this->createResultCollection()->addFieldToFilter($this->
getPrimaryResource()->getIdFieldName(), $ids);
244 if ($this->saveHandler ===
null) {
245 $this->saveHandler = $this->saveHandlerFactory->create(
246 $this->data[
'saveHandler'],
248 'indexStructure' => $this->indexStructure,
249 'data' => $this->data,
273 return $this->data[
'fieldsets'][0];
281 protected function createResultCollection()
286 foreach ($this->data[
'fieldsets'] as $fieldset) {
287 if (isset($fieldset[
'references'])) {
288 foreach ($fieldset[
'references'] as $reference) {
291 $currentEntityName =
$source->getMainTable();
294 : $reference[
'fieldset'];
296 [$fieldset[
'name'] => $currentEntityName],
298 $fieldset[
'name'] .
'.' . $reference[
'from'] .
'=' .
$alias .
'.' . $reference[
'to']
304 foreach ($fieldset[
'fields'] as $field) {
309 $this->
getPrimaryFieldset()[
'name'] == $fieldset[
'name'] ? $this->tableAlias : $fieldset[
'name'],
325 foreach ($this->data[
'fieldsets'] as $fieldsetName => $fieldset) {
326 $this->data[
'fieldsets'][$fieldsetName][
'source'] = $this->sourceFactory->create($fieldset[
'source']);
327 if (isset($fieldset[
'provider'])) {
328 $fieldsetObject = $this->fieldsetPool->get($fieldset[
'provider']);
329 $this->data[
'fieldsets'][$fieldsetName] =
330 $fieldsetObject->addDynamicData($this->data[
'fieldsets'][$fieldsetName]);
332 foreach ($this->data[
'fieldsets'][$fieldsetName][
'fields'] as $fieldName => $field) {
333 $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'origin'] =
334 $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'origin']
335 ?: $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'name'];
336 if ($fieldsetName != 0) {
337 $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'name'] =
338 $this->data[
'fieldsets'][$fieldsetName][
'name'] .
'_' 339 . $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'name'];
342 $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'handler'] =
343 $this->handlerPool->get($field[
'handler']);
344 $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'dataType'] =
345 isset($field[
'dataType']) ? $field[
'dataType'] :
'varchar';
360 switch ($field[
'type']) {
362 $this->filterable[] = $field;
365 $this->searchable[] = $field;
prepareDataSource(array $ids=[])
__construct(AppResource $resource, SourceFactory $sourceFactory, HandlerPool $handlerPool, SaveHandlerFactory $saveHandlerFactory, FieldsetPool $fieldsetPool, StdString $string, IndexStructureInterface $indexStructure, $data=[])
catch(\Exception $e) $handler