Example #1
0
 /**
  * {@inheritdoc}
  */
 public function getObjectInstanceById(ICollection $collection, $objectId)
 {
     $collectionName = $collection->getName();
     if (isset($this->objectsById[$collectionName][$objectId])) {
         return $this->objectsById[$collectionName][$objectId];
     } else {
         return null;
     }
 }
Example #2
0
 /**
  * Разрешает и возвращает список выбираемых полей.
  * @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);
 }
Example #3
0
 /**
  * {@inheritdoc}
  */
 public function fullyLoad($localization = ILocalesService::LOCALE_CURRENT)
 {
     $this->collection->fullyLoadObject($this, $localization);
 }