/** * @param EntityId $entityId * @param string $termType * @param string[] $languageCodes The languages to get terms for * * @return string[] */ protected function getTermsOfType(EntityId $entityId, $termType, array $languageCodes) { $terms = $this->getBufferedTerms($entityId, $termType, $languageCodes); $languageCodes = array_diff($languageCodes, array_keys($terms)); if (!empty($languageCodes)) { $bufferedKeys = $this->getBufferKeys(array($entityId), array($termType), array_keys($terms)); $fetchedTerms = $this->termIndex->getTermsOfEntity($entityId, array($termType), $languageCodes); $fetchedKeys = $this->setBufferedTermObjects($fetchedTerms); $terms = array_merge($terms, $this->convertTermsToMap($fetchedTerms)); $bufferedKeys = array_merge($bufferedKeys, $fetchedKeys); $this->setUndefinedTerms(array($entityId), array($termType), $languageCodes, $bufferedKeys); } $terms = $this->stripUndefinedTerms($terms); return $terms; }
/** * @param EntityId $entityId * @param string $termType * @param string[]|null $languageCodes The languages to get terms for; null means all languages. * * @return string[] */ protected function getTermsOfType(EntityId $entityId, $termType, array $languageCodes = null) { $wikibaseTerms = $this->termIndex->getTermsOfEntity($entityId, array($termType), $languageCodes); return $this->convertTermsToMap($wikibaseTerms); }