java.lang.Object
com.github._1c_syntax.bsl.languageserver.infrastructure.CachePathProvider

@Component public class CachePathProvider extends Object
Компонент для определения пути к персистентному кэшу ehcache.

Кэш размещается в каталоге пользователя в подкаталоге, имя которого вычисляется на основе MD5-хэша текущей рабочей директории. Это позволяет избежать конфликтов при работе с разными проектами и не захламлять git-репозитории.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    getCachePath(String basePath, String fullPath)
    Возвращает путь к каталогу персистентного кэша для текущей рабочей директории.
    getCachePath(String basePath, String fullPath, int instanceNumber)
    Возвращает путь к каталогу персистентного кэша для текущей рабочей директории с учётом номера экземпляра.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CachePathProvider

      public CachePathProvider()
  • Method Details

    • getCachePath

      public Path getCachePath(String basePath, String fullPath)
      Возвращает путь к каталогу персистентного кэша для текущей рабочей директории.

      Если fullPath не пустой, возвращает его напрямую. Иначе формирует путь по шаблону: ${basePath}/.bsl-language-server/cache/<md5-hash>/ где md5-hash - это MD5-хэш абсолютного пути текущей рабочей директории.

      Parameters:
      basePath - базовый путь к каталогу (обычно user.home)
      fullPath - полный путь к каталогу кэша (если задан, используется напрямую)
      Returns:
      путь к каталогу кэша
    • getCachePath

      public Path getCachePath(String basePath, String fullPath, int instanceNumber)
      Возвращает путь к каталогу персистентного кэша для текущей рабочей директории с учётом номера экземпляра.

      Если fullPath не пустой, возвращает его напрямую (instanceNumber игнорируется). Иначе формирует путь по шаблону:

      • При instanceNumber = 0: ${basePath}/.bsl-language-server/cache/<md5-hash>/
      • При instanceNumber > 0: ${basePath}/.bsl-language-server/cache/<md5-hash>@<instanceNumber>/
      где md5-hash - это MD5-хэш абсолютного пути текущей рабочей директории.

      Суффикс с номером экземпляра позволяет нескольким экземплярам BSL LS работать в одной директории с отдельными персистентными кэшами.

      Parameters:
      basePath - базовый путь к каталогу (обычно user.home)
      fullPath - полный путь к каталогу кэша (если задан, используется напрямую)
      instanceNumber - номер экземпляра (0 для основного, 1+ для дополнительных)
      Returns:
      путь к каталогу кэша