Class AbstractMethodSymbol.AbstractMethodSymbolBuilder<C extends AbstractMethodSymbol, B extends AbstractMethodSymbol.AbstractMethodSymbolBuilder<C,B>>

java.lang.Object
com.github._1c_syntax.bsl.languageserver.context.symbol.AbstractMethodSymbol.AbstractMethodSymbolBuilder<C,B>
Type Parameters:
C - тип конструируемого символа-наследника
B - тип самого builder'а-наследника (self-type для fluent-цепочки)
Direct Known Subclasses:
ConstructorSymbol.ConstructorSymbolBuilder, RegularMethodSymbol.RegularMethodSymbolBuilder
Enclosing class:
AbstractMethodSymbol

public abstract static class AbstractMethodSymbol.AbstractMethodSymbolBuilder<C extends AbstractMethodSymbol, B extends AbstractMethodSymbol.AbstractMethodSymbolBuilder<C,B>> extends Object
Кастомизация generated AbstractMethodSymbol.AbstractMethodSymbolBuilder: позволяет передавать range/subNameRange как Range вместо четырёх int-полей. Параметризация по подтипам C/B сохраняет fluent-цепочку builder'а потомков.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    annotations(List<Annotation> annotations)
    Аннотации метода: всё, что стоит со & перед сигнатурой и не является compiler-directive (в OScript — пользовательские аннотации вроде &Желудь).
    async(boolean async)
    Объявлен ли метод с ключевым словом Асинх (Async).
    abstract C
     
    Вложенные символы (локальные переменные, области внутри метода и т.п.).
    Compiler-directive (&НаСервере, &НаКлиенте, …) если стоит перед методом.
    deprecated(boolean deprecated)
    Помечен ли метод как устаревший (через doc-комментарии).
    Распаренная BSL-doc-документация метода (комментарии перед сигнатурой).
    endCharacter(int endCharacter)
    Колонка завершения метода (см.
    endLine(int endLine)
    Строка завершения метода — закрывающее ключевое слово.
    export(boolean export)
    Объявлен ли метод с ключевым словом Экспорт.
    function(boolean function)
    true для функции (с Возврат), false для процедуры.
    name(String name)
    Имя метода.
    DocumentContext, в котором объявлен метод.
    Объявленные параметры метода в порядке объявления.
    Родительский символ — область (#Область), модуль или вложенная область.
    range(Range range)
     
    protected abstract B
     
    startCharacter(int startCharacter)
    Колонка начала тела метода (см.
    startLine(int startLine)
    Строка начала тела метода — от Процедура/Функция (или первой аннотации) до закрывающего ключевого слова.
    subNameEndCharacter(int subNameEndCharacter)
    Колонка конца subName (см.
    subNameLine(int subNameLine)
    Строка имени метода (subName) — используется как selectionRange и для матчинга позиции к символу.
     
    subNameStartCharacter(int subNameStartCharacter)
    Колонка начала subName (см.
     

    Methods inherited from class Object

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

    • AbstractMethodSymbolBuilder

      public AbstractMethodSymbolBuilder()
  • Method Details

    • range

      public B range(Range range)
    • subNameRange

      public B subNameRange(Range range)
    • name

      public B name(String name)
      Имя метода.
      Returns:
      this.
    • owner

      public B owner(DocumentContext owner)
      DocumentContext, в котором объявлен метод.
      Returns:
      this.
    • startLine

      public B startLine(int startLine)
      Строка начала тела метода — от Процедура/Функция (или первой аннотации) до закрывающего ключевого слова.
      Returns:
      this.
    • startCharacter

      public B startCharacter(int startCharacter)
      Колонка начала тела метода (см. startLine).
      Returns:
      this.
    • endLine

      public B endLine(int endLine)
      Строка завершения метода — закрывающее ключевое слово.
      Returns:
      this.
    • endCharacter

      public B endCharacter(int endCharacter)
      Колонка завершения метода (см. endLine).
      Returns:
      this.
    • subNameLine

      public B subNameLine(int subNameLine)
      Строка имени метода (subName) — используется как selectionRange и для матчинга позиции к символу.
      Returns:
      this.
    • subNameStartCharacter

      public B subNameStartCharacter(int subNameStartCharacter)
      Колонка начала subName (см. subNameLine).
      Returns:
      this.
    • subNameEndCharacter

      public B subNameEndCharacter(int subNameEndCharacter)
      Колонка конца subName (см. subNameLine).
      Returns:
      this.
    • parent

      public B parent(Optional<SourceDefinedSymbol> parent)
      Родительский символ — область (#Область), модуль или вложенная область. Выставляется снаружи (после построения дерева), поэтому @Setter.
      Returns:
      this.
    • children

      public B children(List<SourceDefinedSymbol> children)
      Вложенные символы (локальные переменные, области внутри метода и т.п.).
      Returns:
      this.
    • function

      public B function(boolean function)
      true для функции (с Возврат), false для процедуры.
      Returns:
      this.
    • export

      public B export(boolean export)
      Объявлен ли метод с ключевым словом Экспорт.
      Returns:
      this.
    • description

      public B description(Optional<MethodDescription> description)
      Распаренная BSL-doc-документация метода (комментарии перед сигнатурой).
      Returns:
      this.
    • deprecated

      public B deprecated(boolean deprecated)
      Помечен ли метод как устаревший (через doc-комментарии).
      Returns:
      this.
    • async

      public B async(boolean async)
      Объявлен ли метод с ключевым словом Асинх (Async).
      Returns:
      this.
    • parameters

      public B parameters(List<ParameterDefinition> parameters)
      Объявленные параметры метода в порядке объявления.
      Returns:
      this.
    • compilerDirectiveKind

      public B compilerDirectiveKind(Optional<CompilerDirectiveKind> compilerDirectiveKind)
      Compiler-directive (&НаСервере, &НаКлиенте, …) если стоит перед методом. В OScript обычно отсутствует.
      Returns:
      this.
    • annotations

      public B annotations(List<Annotation> annotations)
      Аннотации метода: всё, что стоит со & перед сигнатурой и не является compiler-directive (в OScript — пользовательские аннотации вроде &Желудь).
      Returns:
      this.
    • self

      protected abstract B self()
    • build

      public abstract C build()
    • toString

      public String toString()
      Overrides:
      toString in class Object