Class SymbolOccurrenceRepository

java.lang.Object
com.github._1c_syntax.bsl.languageserver.references.model.SymbolOccurrenceRepository

@Component @WorkspaceScope public class SymbolOccurrenceRepository extends Object
Хранилище обращений к символам.
  • Constructor Details

    • SymbolOccurrenceRepository

      public SymbolOccurrenceRepository()
  • Method Details

    • save

      public void save(SymbolOccurrence symbolOccurrence)
      Сохранить одиночное обращение к символу.
      Parameters:
      symbolOccurrence - Обращение к символу.
    • saveAll

      public void saveAll(Symbol symbol, Collection<SymbolOccurrence> occurrences)
      Пакетно сохранить обращения ОДНОГО символа (все его обращения из одного документа) — основной путь записи. Пачка сливается с текущим значением за одно копирование (O(n + k)), а не по копированию массива на каждое обращение: это снимает внутрифайловую квадратичность, а на реальном cpm — и накопление на хабах (≈14× меньше копирований, чем по одному).
      Parameters:
      symbol - Символ.
      occurrences - Обращения к символу из одного документа.
    • getAllBySymbol

      public Collection<SymbolOccurrence> getAllBySymbol(Symbol symbol)
      Получить все обращения к указанному символу.
      Parameters:
      symbol - Символ.
      Returns:
      Обращения к символу в порядке сортировки SymbolOccurrence, представление без копирования.
    • deleteAll

      public void deleteAll(Collection<SymbolOccurrence> symbolOccurrences)
      Удалить сохраненные данные по указанным обращениям к символу.
      Parameters:
      symbolOccurrences - Список обращений к символам.