/** * {@inheritdoc} */ public function getObjectInstanceById(ICollection $collection, $objectId) { $collectionName = $collection->getName(); if (isset($this->objectsById[$collectionName][$objectId])) { return $this->objectsById[$collectionName][$objectId]; } else { return null; } }
/** * Разрешает и возвращает список выбираемых полей. * @param ICollection $collection коллекция * @param IField[] $fields уточняющий список полей * @param IObjectType[] $types уточняющий список типов * @return IField[] */ protected function resolveSelectiveFields(ICollection $collection, array $fields, array $types) { if (!count($fields)) { foreach ($types as $type) { $fields = array_merge($fields, $type->getFields()); } if (!count($fields)) { $fields = $collection->getMetadata()->getFields(); } } foreach ($fields as $fieldName => $field) { if ($field instanceof IRelationField && !$field instanceof BelongsToRelationField) { unset($fields[$fieldName]); } } return array_merge($collection->getForcedFieldsToLoad(), $fields); }
/** * {@inheritdoc} */ public function fullyLoad($localization = ILocalesService::LOCALE_CURRENT) { $this->collection->fullyLoadObject($this, $localization); }