/** * Returns the value for the property info field specified in the constructor. * * @param PropertyId $propertyId * * @return mixed|null * * @throws StorageException */ public function getPropertyInfo(PropertyId $propertyId) { $info = $this->infoStore->getPropertyInfo($propertyId); if ($info !== null && isset($info[$this->propertyInfoKey])) { return $info[$this->propertyInfoKey]; } else { return null; } }
/** * @since 0.4 * * @param PropertyId $propertyId * * @return string * @throws PropertyDataTypeLookupException */ public function getDataTypeIdForProperty(PropertyId $propertyId) { $dataTypeId = null; $info = $this->infoStore->getPropertyInfo($propertyId); if ($info !== null && isset($info[PropertyInfoStore::KEY_DATA_TYPE])) { $dataTypeId = $info[PropertyInfoStore::KEY_DATA_TYPE]; } if ($dataTypeId === null && $this->fallbackLookup !== null) { $dataTypeId = $this->fallbackLookup->getDataTypeIdForProperty($propertyId); if ($dataTypeId !== null) { wfDebugLog(__CLASS__, __FUNCTION__ . ': No property info found for ' . $propertyId . ', but property ID could be retrieved from fallback store!'); //TODO: Automatically update the info store? //TODO: Suggest to run rebuildPropertyInfo.php } } if ($dataTypeId === null) { throw new PropertyDataTypeLookupException($propertyId); } return $dataTypeId; }