private static function getFSInfo(core_kernel_versioning_Repository $fileSystem) { if (is_null(self::$cache)) { try { self::$cache = common_cache_FileCache::singleton()->get(self::SERIAL); } catch (common_cache_NotFoundException $e) { self::$cache = array(); } } if (!isset(self::$cache[$fileSystem->getUri()])) { $props = $fileSystem->getPropertiesValues(array(PROPERTY_GENERIS_VERSIONEDREPOSITORY_PATH, PROPERTY_GENERIS_VERSIONEDREPOSITORY_TYPE)); if (count($props[PROPERTY_GENERIS_VERSIONEDREPOSITORY_PATH]) == 1 && count($props[PROPERTY_GENERIS_VERSIONEDREPOSITORY_TYPE]) == 1) { self::$cache[$fileSystem->getUri()] = array(PROPERTY_GENERIS_VERSIONEDREPOSITORY_PATH => current($props[PROPERTY_GENERIS_VERSIONEDREPOSITORY_PATH]), PROPERTY_GENERIS_VERSIONEDREPOSITORY_TYPE => current($props[PROPERTY_GENERIS_VERSIONEDREPOSITORY_TYPE])); common_cache_FileCache::singleton()->put(self::$cache, self::SERIAL); } else { throw new common_exception_InconsistentData('Filesystem ' . $fileSystem->getUri() . ' has ' . count($props[PROPERTY_GENERIS_VERSIONEDREPOSITORY_PATH]) . ' path entries and ' . count($props[PROPERTY_GENERIS_VERSIONEDREPOSITORY_PATH]) . ' type entries'); } } return self::$cache[$fileSystem->getUri()]; }