From 5b67fe36bb8e6b5b30cd5bcaefacf8c50614a7ea Mon Sep 17 00:00:00 2001 From: theshadowco Date: Sun, 7 Jan 2024 07:31:08 +0300 Subject: [PATCH] Revert "- lombok" This reverts commit a0bfddddfef09d14f776ea39b9c8131b8894a124. --- build.gradle.kts | 1 - lombok.config | 4 - .../description/BSLDescriptionReader.java | 12 +-- .../parser/description/MethodDescription.java | 75 +++++++++++++------ .../description/VariableDescription.java | 43 ++++++++--- .../support/DescriptionReader.java | 33 ++++---- .../support/ParameterDescription.java | 23 ++++-- .../description/support/SimpleRange.java | 28 +++++-- .../description/support/TypeDescription.java | 28 +++++-- 9 files changed, 167 insertions(+), 80 deletions(-) delete mode 100644 lombok.config diff --git a/build.gradle.kts b/build.gradle.kts index 9ae9016b..af214043 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,6 @@ plugins { id("org.sonarqube") version "4.4.1.3373" id("org.cadixdev.licenser") version "0.6.1" id("me.qoomon.git-versioning") version "6.4.3" - id("io.freefair.lombok") version "8.4" id("io.freefair.javadoc-links") version "8.4" id("io.freefair.javadoc-utf-8") version "8.4" id("com.github.ben-manes.versions") version "0.50.0" diff --git a/lombok.config b/lombok.config deleted file mode 100644 index 2ea4c615..00000000 --- a/lombok.config +++ /dev/null @@ -1,4 +0,0 @@ -lombok.anyConstructor.addConstructorProperties=true -lombok.addLombokGeneratedAnnotation=true -lombok.log.fieldName=LOGGER -lombok.extern.findbugs.addSuppressFBWarnings=true diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/BSLDescriptionReader.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/BSLDescriptionReader.java index 0c87724c..dfa7c9a4 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/BSLDescriptionReader.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/BSLDescriptionReader.java @@ -21,7 +21,6 @@ */ package com.github._1c_syntax.bsl.parser.description; -import lombok.experimental.UtilityClass; import org.antlr.v4.runtime.Token; import javax.annotation.Nullable; @@ -30,16 +29,19 @@ /** * Читатель объектов описания по набору токенов из текста */ -@UtilityClass public final class BSLDescriptionReader { + private BSLDescriptionReader() { + // utility class + } + /** * Возвращает объект описания метода по списку токенов описания * * @param tokens Список токенов описания метода * @return Объект описания */ - public MethodDescription parseMethodDescription(List tokens) { + public static MethodDescription parseMethodDescription(List tokens) { return new MethodDescription(tokens); } @@ -49,7 +51,7 @@ public MethodDescription parseMethodDescription(List tokens) { * @param tokens Список токенов описания переменной * @return Объект описания */ - public VariableDescription parseVariableDescription(List tokens) { + public static VariableDescription parseVariableDescription(List tokens) { return new VariableDescription(tokens); } @@ -60,7 +62,7 @@ public VariableDescription parseVariableDescription(List tokens) { * @param trailing Токен "висящего" описания * @return Объект описания */ - public VariableDescription parseVariableDescription(List tokens, @Nullable Token trailing) { + public static VariableDescription parseVariableDescription(List tokens, @Nullable Token trailing) { return new VariableDescription(tokens, trailing); } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/MethodDescription.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/MethodDescription.java index bac925b6..0e6ad322 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/MethodDescription.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/MethodDescription.java @@ -26,7 +26,6 @@ import com.github._1c_syntax.bsl.parser.description.support.ParameterDescription; import com.github._1c_syntax.bsl.parser.description.support.SimpleRange; import com.github._1c_syntax.bsl.parser.description.support.TypeDescription; -import lombok.Value; import org.antlr.v4.runtime.Token; import java.util.List; @@ -37,61 +36,50 @@ /** * Класс-описание метода (процедуры или функции). */ -@Value -public class MethodDescription implements SourceDefinedSymbolDescription { - +public final class MethodDescription implements SourceDefinedSymbolDescription { /** * Содержит полное описание метода (весь текст). */ - String description; - + private final String description; /** * Содержит часть строки после ключевого слова, в которой должно быть * описание причины устаревания метода либо альтернативы. */ - String deprecationInfo; - + private final String deprecationInfo; /** * Признак устаревания метода. */ - boolean deprecated; - + private final boolean deprecated; /** * Описание назначения метода. */ - String purposeDescription; - + private final String purposeDescription; /** * Примеры использования метода. */ - List examples; - + private final List examples; /** * Варианты вызова метода. */ - List callOptions; - + private final List callOptions; /** * Параметры метода с типами и описанием. */ - List parameters; - + private final List parameters; /** * Возвращаемые значения (типы). */ - List returnedValue; - + private final List returnedValue; /** * Если описание содержит только ссылку, то здесь будет ее значение. *

* TODO Временное решение, надо будет продумать в следующем релизе */ - String link; - + private final String link; /** * Диапазон, в котором располагается описание. */ - SimpleRange range; + private final SimpleRange range; MethodDescription(List comments) { description = comments.stream() @@ -112,8 +100,49 @@ public class MethodDescription implements SourceDefinedSymbolDescription { range = SimpleRange.create(comments); } + @Override + public String getDescription() { + return description; + } + + @Override + public String getDeprecationInfo() { + return deprecationInfo; + } + + @Override + public boolean isDeprecated() { + return deprecated; + } + + @Override + public String getPurposeDescription() { + return purposeDescription; + } + + @Override + public String getLink() { + return link; + } + @Override public SimpleRange getSimpleRange() { return range; } + + public List getExamples() { + return examples; + } + + public List getCallOptions() { + return callOptions; + } + + public List getParameters() { + return parameters; + } + + public List getReturnedValue() { + return returnedValue; + } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java index 637e49f4..35f439bb 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/VariableDescription.java @@ -24,7 +24,6 @@ import com.github._1c_syntax.bsl.parser.BSLMethodDescriptionTokenizer; import com.github._1c_syntax.bsl.parser.description.support.DescriptionReader; import com.github._1c_syntax.bsl.parser.description.support.SimpleRange; -import lombok.Value; import org.antlr.v4.runtime.Token; import javax.annotation.Nullable; @@ -37,46 +36,45 @@ /** * Класс-описание переменной. */ -@Value -public class VariableDescription implements SourceDefinedSymbolDescription { +public final class VariableDescription implements SourceDefinedSymbolDescription { /** * Содержит полное описание переменной (весь текст) */ - String description; + private final String description; /** * Содержит часть строки после ключевого слова, в которой должно быть * описание причины устаревания переменной либо альтернативы */ - String deprecationInfo; + private final String deprecationInfo; /** * Признак устаревания переменной */ - boolean deprecated; + private final boolean deprecated; /** * Описание назначения переменной */ - String purposeDescription; + private final String purposeDescription; /** * Если описание содержит только ссылку, то здесь будет ее значение *

* TODO Временное решение, надо будет продумать кошерное решение */ - String link; + private final String link; /** * Диапазон, в котором располагается описание. */ - SimpleRange range; + private final SimpleRange range; /** * Описание "висячего" комментария */ - VariableDescription trailingDescription; + private final VariableDescription trailingDescription; VariableDescription(List comments) { this(comments, null); @@ -102,6 +100,31 @@ public class VariableDescription implements SourceDefinedSymbolDescription { } } + @Override + public String getDescription() { + return description; + } + + @Override + public String getDeprecationInfo() { + return deprecationInfo; + } + + @Override + public boolean isDeprecated() { + return deprecated; + } + + @Override + public String getPurposeDescription() { + return purposeDescription; + } + + @Override + public String getLink() { + return link; + } + @Override public SimpleRange getSimpleRange() { return range; diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/DescriptionReader.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/DescriptionReader.java index 896c4a47..e3d83a24 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/DescriptionReader.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/DescriptionReader.java @@ -23,7 +23,6 @@ import com.github._1c_syntax.bsl.parser.BSLMethodDescriptionParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; -import lombok.experimental.UtilityClass; import javax.annotation.Nullable; import java.util.ArrayList; @@ -36,18 +35,21 @@ /** * Вспомогательный класс для чтения данных из описания метода */ -@UtilityClass public final class DescriptionReader { private static final int HYPERLINK_REF_LEN = 4; + DescriptionReader() { + // utility class + } + /** * Выполняет разбор прочитанного AST дерева описания метода и формирует список описаний параметров метода * * @param ctx Дерево описания метода * @return Список описаний параметров метода */ - public List readParameters(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { + public static List readParameters(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { // параметров нет if (ctx.parameters() == null) { @@ -81,7 +83,7 @@ public List readParameters(BSLMethodDescriptionParser.Meth * @param ctx Дерево описания метода * @return Список описаний возвращаемых значений */ - public List readReturnedValue(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { + public static List readReturnedValue(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { // возвращаемого значения нет if (ctx.returnsValues() == null) { @@ -120,8 +122,7 @@ public List readReturnedValue(BSLMethodDescriptionParser.Method if (string.returnsValue().type() != null && string.returnsValue().type().getText() != null) { text += string.returnsValue().type().getText(); } - if (string.returnsValue().typeDescription() != null - && string.returnsValue().typeDescription().getText() != null) { + if (string.returnsValue().typeDescription() != null && string.returnsValue().typeDescription().getText() != null) { text += " - " + string.returnsValue().typeDescription().getText(); } fakeParam.addTypeDescription(text); @@ -146,7 +147,7 @@ public List readReturnedValue(BSLMethodDescriptionParser.Method * @param ctx Дерево описания метода * @return Описание устаревшего метода */ - public String readDeprecationInfo(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { + public static String readDeprecationInfo(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { if (ctx.deprecate() != null) { var deprecationDescription = ctx.deprecate().deprecateDescription(); if (deprecationDescription != null) { @@ -162,7 +163,7 @@ public String readDeprecationInfo(BSLMethodDescriptionParser.MethodDescriptionCo * @param ctx Дерево описания метода * @return Список вариантов вызова */ - public List readCallOptions(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { + public static List readCallOptions(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { if (ctx.callOptions() != null) { var strings = ctx.callOptions().callOptionsString(); if (strings != null) { @@ -181,7 +182,7 @@ public List readCallOptions(BSLMethodDescriptionParser.MethodDescription * @param ctx Дерево описания метода * @return Список примеров */ - public List readExamples(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { + public static List readExamples(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { if (ctx.examples() != null) { var strings = ctx.examples().examplesString(); if (strings != null) { @@ -200,7 +201,7 @@ public List readExamples(BSLMethodDescriptionParser.MethodDescriptionCon * @param ctx Дерево описания метода * @return Описание назначения метода */ - public String readPurposeDescription(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { + public static String readPurposeDescription(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { if (ctx.descriptionBlock() != null) { if (ctx.descriptionBlock().description() != null) { var strings = ctx.descriptionBlock().description().descriptionString(); @@ -225,14 +226,14 @@ public String readPurposeDescription(BSLMethodDescriptionParser.MethodDescriptio * @param ctx Дерево описания метода * @return Ссылка в методе */ - public String readLink(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { + public static String readLink(BSLMethodDescriptionParser.MethodDescriptionContext ctx) { if (ctx.descriptionBlock() != null && ctx.descriptionBlock().hyperlinkBlock() != null) { return getDescriptionString(ctx.descriptionBlock().hyperlinkBlock()).substring(HYPERLINK_REF_LEN); } return ""; } - private String getDescriptionString(BSLParserRuleContext ctx) { + private static String getDescriptionString(BSLParserRuleContext ctx) { var strings = new StringJoiner(""); for (var i = 0; i < ctx.getChildCount(); i++) { var child = ctx.getChild(i); @@ -245,9 +246,7 @@ private String getDescriptionString(BSLParserRuleContext ctx) { return strings.toString().strip(); } - private List getParametersStrings( - List strings - ) { + private static List getParametersStrings(List strings) { List result = new ArrayList<>(); var current = new TempParameterData(); @@ -404,6 +403,8 @@ public void addTypeDescription(String textDescription) { private void addSubParameter(BSLMethodDescriptionParser.SubParameterContext subParameter) { lastType().ifPresent(lastType -> lastType.addSubParameter(subParameter)); } + + } /** @@ -465,5 +466,7 @@ private void addSubParameter(BSLMethodDescriptionParser.SubParameterContext subP lastSubParameter().ifPresent(subParam -> subParam.addSubParameter(subParameter)); } } + + } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/ParameterDescription.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/ParameterDescription.java index 71011a06..5bf04d7b 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/ParameterDescription.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/ParameterDescription.java @@ -21,33 +21,26 @@ */ package com.github._1c_syntax.bsl.parser.description.support; -import lombok.Getter; - import java.util.List; /** * Описание параметра из комментария - описания метода */ -@Getter public class ParameterDescription { - /** * Имя параметра */ private final String name; - /** * Возможные типы параметра. Может быть пустым */ private final List types; - /** * Если описание параметров содержит только ссылку, то здесь будет ее значение *

* TODO Временное решение, надо будет продумать в следующем релизе */ private final String link; - /** * Признак того, что параметр является гиперссылкой */ @@ -62,4 +55,20 @@ protected ParameterDescription(String name, this.link = link; this.isHyperlink = isHyperlink; } + + public String getName() { + return name; + } + + public List getTypes() { + return types; + } + + public String getLink() { + return link; + } + + public boolean isHyperlink() { + return isHyperlink; + } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/SimpleRange.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/SimpleRange.java index cc948634..104e0658 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/SimpleRange.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/SimpleRange.java @@ -21,7 +21,6 @@ */ package com.github._1c_syntax.bsl.parser.description.support; -import lombok.Value; import org.antlr.v4.runtime.Token; import java.util.List; @@ -29,28 +28,27 @@ /** * Класс для хранения области символов */ -@Value -public class SimpleRange { +public final class SimpleRange { /** * Номер первой строки области */ - int startLine; + private final int startLine; /** * Номер первого символа области */ - int startCharacter; + private final int startCharacter; /** * Номер последней строки области */ - int endLine; + private final int endLine; /** * Номер последнего символа области */ - int endCharacter; + private final int endCharacter; public SimpleRange(int startLine, int startCharacter, int endLine, int endCharacter) { this.startLine = startLine; @@ -118,6 +116,22 @@ public static SimpleRange create(List tokens) { return create(firstElement, lastElement); } + public int getStartLine() { + return startLine; + } + + public int getStartCharacter() { + return startCharacter; + } + + public int getEndLine() { + return endLine; + } + + public int getEndCharacter() { + return endCharacter; + } + public String toString() { return ("SimpleRange(startLine=" + startLine + ", startCharacter=" + startCharacter diff --git a/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/TypeDescription.java b/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/TypeDescription.java index 8793cbf2..f5b4c606 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/TypeDescription.java +++ b/src/main/java/com/github/_1c_syntax/bsl/parser/description/support/TypeDescription.java @@ -21,38 +21,30 @@ */ package com.github._1c_syntax.bsl.parser.description.support; -import lombok.Getter; - import java.util.List; /** * Описание типа параметра, прочитанного из описания метода */ -@Getter public class TypeDescription { - /** * Имя типа. На данный момент может быть строковый массив перечисления типов а также гиперссылка на метод */ private final String name; - /** * Описание типа. Может быть пустым */ private final String description; - /** * Параметры (ключи или поля) типа для сложных типов данных. Может быть пустым */ private final List parameters; - /** * Если описание параметров содержит только ссылку, то здесь будет ее значение *

* TODO Временное решение, надо будет продумать в следующем релизе */ private final String link; - /** * Признак того, что параметр является гиперссылкой */ @@ -69,4 +61,24 @@ protected TypeDescription(String name, this.link = link; this.isHyperlink = isHyperlink; } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public List getParameters() { + return parameters; + } + + public String getLink() { + return link; + } + + public boolean isHyperlink() { + return isHyperlink; + } }