/** * @param string $subject * @param string $property * @param string $lang * @return array */ public function resolvePropertyValue($subject, $property, $lang) { $itemIds = $this->apiInteractor->searchEntities($subject, 'item', $lang); $propertyIds = $this->apiInteractor->searchEntities($property, 'property', $lang); $items = $this->apiInteractor->getItems($itemIds); return $this->getResult($items, $propertyIds, $lang); }
/** * @param DataValue[] $values * @param string $lang * @return array */ public function formatDataValues(array $values, $lang) { $formattedValues = array(); $items = $this->apiInteractor->getItems($this->getItemIds($values)); foreach ($values as $value) { if ($value instanceof EntityIdValue) { $formatted = $this->formatItem($items[$value->getEntityId()->getSerialization()], $lang); } else { $formatted = $this->formatDataValue($value, $lang); } $formatted['type'] = $value->getType(); $formattedValues[] = $formatted; } return $formattedValues; }