/**
  * 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;
 }