Interface CodeLensSupplier<T extends CodeLensData>

Type Parameters:
T - Конкретный тип для данных линзы.
All Known Implementing Classes:
AbstractMethodComplexityCodeLensSupplier, AbstractRunTestsCodeLensSupplier, CognitiveComplexityCodeLensSupplier, CyclomaticComplexityCodeLensSupplier, RunAllTestsCodeLensSupplier, RunTestCodeLensSupplier

public interface CodeLensSupplier<T extends CodeLensData>
Базовый интерфейс для наполнения CodeLensProvider данными о доступных в документе линзах.

Для целей улучшения производительности шаги получения линз документа и их "разрешение" (создание объекта CodeLens.setCommand(Command)) должно проводиться в два этапа.

Для хранения промежуточных данных между созданием и разрешением линзы необходимо использовать поле CodeLens.setData(Object), заполняя его объектом класса getCodeLensDataClass().

Конкретный сапплаер может расширить состав данных, хранимые в линзе, доопределив дата-класс, наследующий CodeLensData, и указав его тип в качестве типа-параметра класса.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Получить класс для хранения данных линзы.
    getCodeLenses(DocumentContext documentContext)
    Получить список линз, доступных в документе.
    default String
    Идентификатор сапплаера.
    default boolean
    isApplicable(DocumentContext documentContext)
    Возвращает необходимость применения сапплаера на конкретном документе.
    default CodeLens
    resolve(DocumentContext documentContext, CodeLens unresolved, T data)
    Выполнить операцию "разрешения" линзы.
  • Field Details

  • Method Details

    • getId

      default String getId()
      Идентификатор сапплаера. Если линза содержит поле CodeLens.getData(), идентификатор в данных линзы должен совпадать с данным идентификатором.
      Returns:
      Идентификатор сапплаера.
    • isApplicable

      default boolean isApplicable(DocumentContext documentContext)
      Возвращает необходимость применения сапплаера на конкретном документе.
      Parameters:
      documentContext - Документ.
      Returns:
      Необходимость применения.
    • getCodeLenses

      List<CodeLens> getCodeLenses(DocumentContext documentContext)
      Получить список линз, доступных в документе.

      Предпочтительно, чтобы линзы, возвращаемые этим методом были "не-разрешенными"

      Parameters:
      documentContext - Документ, для которого надо рассчитать линзы.
      Returns:
      Список линз.
    • getCodeLensDataClass

      Class<T> getCodeLensDataClass()
      Получить класс для хранения данных линзы.

      При создании не-разрешенной линзы поле CodeLens.setData(Object) должно заполняться объектом данного класса.

      Returns:
      Конкретный класс для хранения данных линзы.
    • resolve

      default CodeLens resolve(DocumentContext documentContext, CodeLens unresolved, T data)
      Выполнить операцию "разрешения" линзы.

      По умолчанию линза возвращается не-разрешенной.

      Parameters:
      documentContext - Документ, которому принадлежит линза.
      unresolved - Линза, которую надо разрешить.
      data - Десериализованные данные линзы.
      Returns:
      Разрешенная линза (с заполненным полем CodeLens.getCommand())