Skip to content

Оптимизация многопоточной работы#456

Merged
theshadowco merged 1 commit into
developfrom
feature/optimize
May 28, 2024
Merged

Оптимизация многопоточной работы#456
theshadowco merged 1 commit into
developfrom
feature/optimize

Conversation

@theshadowco

Copy link
Copy Markdown
Member
  • обновление зависимостией

Описание

  • Оптимизирована многопоточная работа - теперь однопоточно :(

Связанные задачи

Closes

Чеклист

Общие

  • Ветка PR обновлена из develop
  • Отладочные, закомментированные и прочие, не имеющие смысла участки кода удалены
  • Изменения покрыты тестами
  • Обязательные действия перед коммитом выполнены (запускал команду gradlew precommit)

Дополнительно

@coderabbitai

coderabbitai Bot commented May 14, 2024

Copy link
Copy Markdown

Walkthrough

Внесены изменения в несколько файлов, включая изменение типов возвращаемых значений методов, удаление методов, добавление новых методов и импортов, а также рефакторинг классов для улучшения логики и структуры кода. Основные изменения касаются методов чтения и обработки данных, а также представления объектов.

Changes

Файл Описание изменений
src/main/java/com/github/_1c_syntax/bsl/mdclasses/MDClasses.java Изменен тип возвращаемого значения метода createExternalReport с MDClass на ExternalSource.
src/main/java/com/github/_1c_syntax/bsl/mdo/storage/RoleData.java Удален метод create, который читал данные из файла и возвращал объект RoleData.
src/main/java/com/github/_1c_syntax/bsl/mdo/storage/XdtoPackageData.java Удален метод create, который создавал экземпляры XdtoPackageData из заданного пути.
src/main/java/com/github/_1c_syntax/bsl/mdo/support/MultiLanguageString.java Добавлен метод toString для генерации строкового представления объекта MultiLanguageString.
src/main/java/com/github/_1c_syntax/bsl/mdo/support/ScriptVariant.java Заменен CaseInsensitiveMap на ConcurrentSkipListMap для ключевого маппинга.
src/main/java/com/github/_1c_syntax/bsl/reader/FakeReader.java Изменены типы возвращаемых значений методов на более специфичные и добавлены новые методы.
src/main/java/com/github/_1c_syntax/bsl/reader/MDOReader.java Рефакторинг класса, удаление методов, связанных с получением ридеров для проектов.
src/main/java/com/github/_1c_syntax/bsl/reader/MDReader.java Рефакторинг и реструктуризация класса, использование аннотаций Lombok.
src/main/java/com/github/_1c_syntax/bsl/reader/common/TransformationUtils.java Изменены сигнатуры методов и добавлен новый параметр Path path в метод build.
src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java Добавлены методы setValueModules и readModules.
src/main/java/com/github/_1c_syntax/bsl/reader/common/context/FormElementReaderContext.java Рефакторинг структуры класса и параметров конструктора.
src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java Рефакторинг класса, использование аннотаций Lombok и изменения в методах.
src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/AbstractReadConverter.java Обновлен метод read для использования getMdReader вместо ReaderUtils.unmarshal.
src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/CommonAttributeUseContentConverter.java Рефакторинг для обработки различных конфигураций на основе ConfigurationSource.
src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/DataSetConverter.java Рефакторинг для использования ExtendXStream для чтения элементов данных и источников запросов.
src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/MultiLanguageStringConverter.java Изменения в логике анмаршалинга на основе ConfigurationSource.
src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/RoleDataConverter.java Использование ExtendXStream для чтения значений вместо прямого использования context.convertAnother.

В коде свежий ветер дует,
Изменения нас ждут.
Методы и строки строятся,
Новые пути ведут.
Пусть код наш будет прочным,
Как кроличий дом уютный. 🐇


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to full the review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions

github-actions Bot commented May 14, 2024

Copy link
Copy Markdown
Contributor

Test Results

 53 files  ±0   53 suites  ±0   45s ⏱️ +16s
207 tests ±0  207 ✅ ±0  0 💤 ±0  0 ❌ ±0 
209 runs  ±0  209 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 79a3606. ± Comparison against base commit 3b7b1b6.

♻️ This comment has been updated with latest results.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 3912137 and 6e86cfe.
Files ignored due to path filters (14)
  • src/test/resources/fixtures/mdclasses/Configuration.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/Configuration_edt.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/Constants.Константа1.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/Constants.Константа1_edt.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/DocumentNumerators.НумераторДокументов1.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/ExternalDataSources.ТекущаяСУБД.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/ExternalDataSources.ТекущаяСУБД_edt.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/Subsystems.ПерваяПодсистема.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses_3_18/Configuration.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses_3_18/Configuration_edt.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses_ext/Configuration.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses_ext/Configuration_edt.json is excluded by !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Configuration.json is excluded by !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Configuration_edt.json is excluded by !**/*.json
Files selected for processing (42)
  • .gitignore (1 hunks)
  • build.gradle.kts (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdclasses/MDClasses.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/storage/RoleData.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/storage/XdtoPackageData.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/support/ScriptVariant.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/FakeReader.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/MDOReader.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/MDReader.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/TransformationUtils.java (5 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/FormElementReaderContext.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java (5 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/AbstractReadConverter.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/CommonAttributeUseContentConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/CommonModuleConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ConfigurationConverter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ExchangePlanAutoRecordConverter.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/MultiLanguageStringConverter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/SubsystemConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/XdtoPackageDataConverter.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendReaderWrapper.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendStaxDriver.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendXStream.java (8 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/DesignerRootWrapper.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/ExchangePlanConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/FormElementConverter.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MDChildConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MetaDataObjectConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/RoleConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/TemplateConverter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/Unmarshaller.java (8 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/XDTOPackageConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ExternalDataSourceTableConverter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/RoleConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/TemplateConverter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/Unmarshaller.java (6 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/XDTOPackageConverter.java (2 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdo/WebServiceTest.java (1 hunks)
Files not reviewed due to errors (4)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java (no review received)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/TransformationUtils.java (no review received)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/XdtoPackageDataConverter.java (no review received)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendXStream.java (no review received)
Files skipped from review due to trivial changes (5)
  • .gitignore
  • src/main/java/com/github/_1c_syntax/bsl/mdo/storage/RoleData.java
  • src/main/java/com/github/_1c_syntax/bsl/mdo/storage/XdtoPackageData.java
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/DesignerRootWrapper.java
  • src/test/java/com/github/_1c_syntax/bsl/mdo/WebServiceTest.java
Additional comments not posted (114)
src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendReaderWrapper.java (4)

40-44: Конструктор корректно инициализирует все поля. Выглядит хорошо.


Line range hint 47-49: Метод getPath корректно возвращает путь к файлу. Выглядит хорошо.


51-53: Метод getXMLStreamReader корректно возвращает XMLStreamReader. Выглядит хорошо.


55-57: Метод getMDReader корректно возвращает MDReader. Выглядит хорошо.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/RoleConverter.java (3)

39-42: Метод unmarshal корректно использует ExtendXStream.read для чтения данных. Выглядит хорошо.


46-48: Метод canConvert корректно проверяет тип класса. Выглядит хорошо.


49-51: Метод dataPath корректно строит путь к файлу данных. Выглядит хорошо.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/XDTOPackageConverter.java (3)

39-42: Метод unmarshal корректно использует ExtendXStream.read для чтения данных. Выглядит хорошо.


46-48: Метод canConvert корректно проверяет тип класса. Выглядит хорошо.


49-51: Метод dataPath корректно строит путь к файлу данных. Выглядит хорошо.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/RoleConverter.java (3)

41-42: Метод unmarshal корректно использует ExtendXStream.read для чтения данных. Выглядит хорошо.


48-50: Метод canConvert корректно проверяет тип класса. Выглядит хорошо.


51-53: Метод dataPath корректно строит путь к файлу данных. Выглядит хорошо.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/XDTOPackageConverter.java (3)

41-42: Метод unmarshal корректно использует ExtendXStream.read для чтения данных. Выглядит хорошо.


48-50: Метод canConvert корректно проверяет тип класса. Выглядит хорошо.


51-53: Метод dataPath корректно строит путь к файлу данных. Выглядит хорошо.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/ExchangePlanConverter.java (3)

41-42: Метод unmarshal корректно использует ExtendXStream.read для чтения данных. Выглядит хорошо.


48-50: Метод canConvert корректно проверяет тип класса. Выглядит хорошо.


51-53: Метод dataPath корректно строит путь к файлу данных. Выглядит хорошо.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MetaDataObjectConverter.java (1)

44-54: Метод unmarshal корректно использует ExtendXStream.getRealClass для получения реального класса. Обработка исключений и логирование также выполнены правильно. Выглядит хорошо.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ExternalDataSourceTableConverter.java (3)

31-31: Добавлен импорт для Path и Paths.


47-47: Использование ExtendXStream.read с новым методом dataPath выглядит корректным. Убедитесь, что ExtendXStream.read обрабатывает все возможные исключения.


57-61: Метод dataPath корректно формирует путь на основе родительского пути и имени дочернего элемента.

src/main/java/com/github/_1c_syntax/bsl/mdo/support/ScriptVariant.java (2)

29-29: Добавлен импорт для ConcurrentSkipListMap.


71-71: Инициализация keysMap с использованием ConcurrentSkipListMap и String.CASE_INSENSITIVE_ORDER улучшает потокобезопасность и обработку ключей без учета регистра.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/CommonModuleConverter.java (2)

25-25: Добавлен импорт для ExtendXStream.


41-45: Использование ExtendXStream.getCurrentMDReader и связанных методов для получения пути модуля и папки выглядит корректным. Убедитесь, что все возможные исключения обрабатываются.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ConfigurationConverter.java (4)

1-1: Добавлен заголовок файла.


41-42: Добавлен аннотация @CommonConverter.


50-50: Использование ExtendXStream.getCurrentMDReader для фильтрации расширений конфигурации выглядит корректным. Убедитесь, что все возможные исключения обрабатываются.


59-59: Использование readerContext.getMdReader().unmarshal для десериализации данных выглядит корректным. Убедитесь, что все возможные исключения обрабатываются.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/FormElementConverter.java (2)

40-41: Добавлена константа CONDITIONAL_APPEARANCE_TYPE_NAME.


44-47: Добавлена обработка узла ConditionalAppearance, который пропускается. Это улучшает обработку специфичных узлов.

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/FormElementReaderContext.java (3)

38-39: Добавлена аннотация @EqualsAndHashCode.


53-56: Конструктор корректно инициализирует поля name и realClass.


65-67: Метод fieldType корректно использует realClassByName для определения типа поля.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/TemplateConverter.java (3)

29-29: Добавлен импорт для ExtendXStream.


46-47: Использование ExtendXStream.read с новым методом dataPath выглядит корректным. Убедитесь, что ExtendXStream.read обрабатывает все возможные исключения.


65-75: Метод dataPath корректно формирует путь на основе родительского пути и имени дочернего элемента.

src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendStaxDriver.java (5)

24-24: Добавлен импорт для MDReader.


43-44: Добавлено поле mdReader.


48-50: Конструктор корректно инициализирует поле mdReader.


56-58: Конструктор корректно инициализирует поле mdReader.


72-72: Использование ExtendReaderWrapper с mdReader выглядит корректным. Убедитесь, что все возможные исключения обрабатываются.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/MultiLanguageStringConverter.java (2)

48-56: Изменения в методе unmarshal выглядят корректными. Логика обработки источников конфигурации реализована правильно.


66-84: Метод multiLanguageString корректно обрабатывает дочерние узлы reader и извлекает необходимые значения. Логика ясна и понятна.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/CommonAttributeUseContentConverter.java (2)

47-56: Изменения в методе unmarshal выглядят корректными. Логика обработки источников конфигурации реализована правильно.


65-85: Метод commonAttributeUseContent корректно обрабатывает дочерние узлы reader и извлекает необходимые значения. Логика ясна и понятна.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/SubsystemConverter.java (2)

Line range hint 52-74: Изменения в методе unmarshal выглядят корректными. Логика обработки дочерних и самостоятельных подсистем реализована правильно.


79-85: Метод dataPath корректно формирует путь для данных подсистемы. Логика ясна и понятна.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MDChildConverter.java (3)

53-58: Изменения в методе unmarshal выглядят корректными. Логика обработки различных типов дочерних элементов реализована правильно.


71-75: Метод computeTypes корректно инициализирует карту с необходимыми типами. Логика ясна и понятна.


79-84: Метод childDataPath корректно формирует путь для данных дочерних элементов. Логика ясна и понятна.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/TemplateConverter.java (3)

Line range hint 49-77: Изменения в методе unmarshal выглядят корректными. Логика обработки различных типов шаблонов реализована правильно.


80-82: Метод dataPath корректно формирует путь для данных шаблона. Логика ясна и понятна.


84-91: Метод childDataPath корректно формирует путь для данных дочерних элементов. Логика ясна и понятна.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ExchangePlanAutoRecordConverter.java (2)

47-59: Изменения в методе unmarshal выглядят корректными. Логика обработки источников конфигурации реализована правильно.


67-89: Метод exchangePlanAutoRecord корректно обрабатывает дочерние узлы reader и извлекает необходимые значения. Логика ясна и понятна.

src/main/java/com/github/_1c_syntax/bsl/reader/FakeReader.java (9)

49-51: Метод getConfigurationSource корректно возвращает значение ConfigurationSource.EMPTY. Логика ясна и понятна.


55-58: Метод readConfiguration корректно возвращает значение Configuration.EMPTY. Логика ясна и понятна.


62-63: Метод readExternalSource корректно возвращает значение ExternalReport.EMPTY. Логика ясна и понятна.


68-69: Метод getRootPath корректно возвращает значение Path.of("fake-path"). Логика ясна и понятна.


74-75: Метод read(Path) корректно возвращает значение null. Логика ясна и понятна.


79-80: Метод read(Path, String) корректно возвращает значение null. Логика ясна и понятна.


85-86: Метод getXstream корректно возвращает значение null. Логика ясна и понятна.


92-93: Метод readFormData корректно возвращает значение EmptyFormData.getEmpty(). Логика ясна и понятна.


98-99: Метод moduleFolder корректно возвращает значение getRootPath(). Логика ясна и понятна.

src/main/java/com/github/_1c_syntax/bsl/reader/MDReader.java (11)

49-49: Метод getConfigurationSource реализован корректно.


57-57: Метод getRootPath реализован корректно.


65-65: Метод readConfiguration реализован корректно.


73-73: Метод readExternalSource реализован корректно.


83-85: Метод read с параметром String реализован корректно.


93-95: Метод read с параметром Path реализован корректно.


111-111: Метод getXstream реализован корректно.


122-122: Метод readFormData реализован корректно.


131-131: Метод moduleFolder реализован корректно.


142-142: Метод modulePath реализован корректно.


177-177: Метод unmarshal реализован корректно.

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java (5)

80-93: Конструктор MDReaderContext реализован корректно.


99-101: Метод setValue реализован корректно.


Line range hint 119-130: Метод build реализован корректно.


Line range hint 134-138: Метод saveChildName реализован корректно.


Line range hint 145-155: Метод setValueChildren реализован корректно.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/Unmarshaller.java (5)

Line range hint 58-70: Метод unmarshal реализован корректно.


Line range hint 71-107: Метод readNode реализован корректно.


Line range hint 108-115: Метод transformMultiLanguageString реализован корректно.


Line range hint 118-126: Метод saveExtra для MDReaderContext реализован корректно.


Line range hint 128-141: Метод saveExtra для MDCReaderContext реализован корректно.

src/main/java/com/github/_1c_syntax/bsl/reader/MDOReader.java (8)

63-63: Метод readConfiguration реализован корректно.


72-73: Метод read с параметрами Path и String реализован корректно.


83-84: Метод read с параметрами Path, String и boolean реализован корректно.


99-100: Метод readExternalSource реализован корректно.


102-106: Метод createReader с параметрами Path, boolean и MDOType реализован корректно.


110-116: Метод createReader с параметрами Path, boolean и ConfigurationSource реализован корректно.


Line range hint 120-136: Метод getConfigurationSourceByPath реализован корректно.


138-148: Метод getConfigurationSourceByPathSimple реализован корректно.

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java (3)

113-116: Конструктор AbstractReaderContext реализован корректно.


124-126: Метод setValue реализован корректно.


134-139: Метод fieldType реализован корректно.

src/main/java/com/github/_1c_syntax/bsl/mdclasses/MDClasses.java (1)

64-64: Изменение типа возвращаемого значения метода createExternalReport с MDClass на ExternalSource выглядит корректным. Убедитесь, что все вызовы этого метода в кодовой базе обновлены соответствующим образом.

Verification successful

Изменение типа возвращаемого значения метода createExternalReport с MDClass на ExternalSource выглядит корректным. По результатам поиска, вызовы этого метода в кодовой базе отсутствуют, что подтверждает отсутствие необходимости в дополнительных изменениях.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify all function calls to `createExternalReport` match the new return type.

# Test: Search for the function usage. Expect: Only occurrences of the new return type.
rg --type java $'createExternalReport'

Length of output: 151



Script:

#!/bin/bash
# Description: Find all calls to the `createExternalReport` method and check their context.

# Search for all calls to `createExternalReport` in the codebase.
rg --type java 'createExternalReport\(' -A 3 -B 3

Length of output: 644

build.gradle.kts (1)

58-59: Обновление зависимостей utils и bsl-common-library выглядит корректным. Убедитесь, что новые версии протестированы и совместимы с вашим проектом.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/Unmarshaller.java (1)

63-71: Метод unmarshal добавлен для обработки различных контекстов чтения. Убедитесь, что все возможные контексты корректно обрабатываются и протестированы.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java (6)

91-95: Конструктор EDTReader корректно инициализирует xstream и rootPath, а также опционально читает данные поддержки. Изменения выглядят правильными.


100-103: Метод getConfigurationSource возвращает источник конфигурации. Изменения выглядят правильными.


106-111: Метод readConfiguration корректно читает и возвращает конфигурацию. Изменения выглядят правильными.


116-121: Метод readExternalSource корректно читает и возвращает внешний источник. Изменения выглядят правильными.


146-159: Метод readFormData корректно читает данные формы на основе предоставленного пути и имени. Изменения выглядят правильными.


202-205: Метод unmarshal корректно делегирует процесс демаршалинга классу Unmarshaller. Изменения выглядят правильными.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java (6)

93-97: Конструктор DesignerReader корректно инициализирует xstream и rootPath, а также опционально читает данные поддержки. Изменения выглядят правильными.


102-105: Метод getConfigurationSource возвращает источник конфигурации. Изменения выглядят правильными.


108-113: Метод readConfiguration корректно читает и возвращает конфигурацию. Изменения выглядят правильными.


118-123: Метод readExternalSource корректно читает и возвращает внешний источник. Изменения выглядят правильными.


148-154: Метод readFormData корректно читает данные формы на основе предоставленного пути и имени. Изменения выглядят правильными.


202-205: Метод unmarshal корректно делегирует процесс демаршалинга классу Unmarshaller. Изменения выглядят правильными.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 6e86cfe and 3f670ae.
Files selected for processing (1)
  • src/test/java/com/github/_1c_syntax/bsl/test_utils/MDTestUtils.java (1 hunks)
Additional comments not posted (1)
src/test/java/com/github/_1c_syntax/bsl/test_utils/MDTestUtils.java (1)

135-135: Изменение вызова метода с MDOReader.readMDObject на MDOReader.read требует проверки, чтобы убедиться, что новый метод возвращает ожидаемый тип данных и корректно обрабатывает входные параметры. Пожалуйста, убедитесь, что все вызовы этого метода в кодовой базе обновлены и протестированы.

Verification successful

Изменение вызова метода с MDOReader.readMDObject на MDOReader.read было проверено. Все вызовы метода MDOReader.read в кодовой базе обновлены и соответствуют новому сигнатуре. Старый метод MDOReader.readMDObject больше не используется в кодовой базе.

  • src/main/java/com/github/_1c_syntax/bsl/mdclasses/MDClasses.java: два вызова MDOReader.read с разными параметрами.
  • src/test/java/com/github/_1c_syntax/bsl/test_utils/MDTestUtils.java: один вызов MDOReader.read.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify all function calls to `MDOReader.read` match the new signature.

# Test: Search for the function usage. Expect: Only occurrences of the new signature.
rg --type java $'MDOReader.read'

Length of output: 397



Script:

#!/bin/bash
# Description: Verify that the old method `MDOReader.readMDObject` is not used in the codebase.

# Test: Search for the old method usage. Expect: No occurrences of the old method.
rg --type java $'MDOReader.readMDObject'

Length of output: 39

- обновление зависимостией
@sonarqubecloud

Copy link
Copy Markdown

@theshadowco
theshadowco merged commit 6f78f00 into develop May 28, 2024
@theshadowco
theshadowco deleted the feature/optimize branch May 28, 2024 06:49

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

Outside diff range and nitpick comments (3)
src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/SubsystemConverter.java (1)

[!TIP]
Codebase Verification

Метод unmarshal не покрыт тестами.

В ходе проверки не было найдено тестов, которые бы проверяли метод unmarshal в классе SubsystemConverter. Это может привести к тому, что новая логика не будет протестирована должным образом.

  • Убедитесь, что добавлены тесты для метода unmarshal в классе SubsystemConverter.
  • Проверьте, что тесты покрывают все возможные сценарии использования метода, включая обработку различных типов подсистем.
Analysis chain

Line range hint 39-85: Метод unmarshal корректно обрабатывает различные типы подсистем. Убедитесь, что все тесты покрывают новую логику.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка покрытия тестами новой логики в методе `unmarshal`.

# Тест: Поиск тестов для `unmarshal`. Ожидаем: Тесты присутствуют.
rg --type java $'test.*unmarshal'

Length of output: 34



Script:

#!/bin/bash
# Описание: Поиск тестовых файлов и проверка наличия тестов для метода `unmarshal`.

# Шаг 1: Поиск всех тестовых файлов в репозитории.
test_files=$(fd --type f --extension java --exec echo {})

# Шаг 2: Проверка каждого тестового файла на наличие тестов для метода `unmarshal`.
for file in $test_files; do
  echo "Проверка файла: $file"
  rg 'unmarshal' $file
done

Length of output: 107037



Script:

#!/bin/bash
# Описание: Поиск тестовых файлов и проверка наличия тестов для метода `unmarshal`.

# Шаг 1: Поиск всех тестовых файлов в репозитории.
test_files=$(fd --type f --extension java --exec echo {})

# Шаг 2: Проверка каждого тестового файла на наличие тестов для метода `unmarshal`.
for file in $test_files; do
  echo "Проверка файла: $file"
  rg 'unmarshal' $file
done

Length of output: 107037

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/TemplateConverter.java (1)

[!TIP]
Codebase Verification

Метод unmarshal в классе TemplateConverter не покрыт тестами. Рекомендуется добавить тесты для проверки новой логики.

  • Отсутствуют тестовые файлы, связанные с TemplateConverter.
  • Метод unmarshal не вызывается в существующих тестах.
Analysis chain

Line range hint 39-91: Метод unmarshal корректно обрабатывает различные типы шаблонов. Убедитесь, что все тесты покрывают новую логику.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка покрытия тестами новой логики в методе `unmarshal`.

# Тест: Поиск тестов для `unmarshal`. Ожидаем: Тесты присутствуют.
rg --type java $'test.*unmarshal'

Length of output: 34



Script:

#!/bin/bash
# Описание: Проверка покрытия тестами новой логики в методе `unmarshal`.

# Шаг 1: Поиск тестовых файлов, связанных с TemplateConverter.
rg --type java 'TemplateConverter'

# Шаг 2: Проверка, вызывается ли метод unmarshal в каких-либо тестах.
rg --type java 'unmarshal' --files-with-matches | xargs rg 'TemplateConverter'

Length of output: 709

src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendXStream.java (1)

Line range hint 323-335: Метод использует ClassGraph для сканирования и регистрации классов, что уменьшает вероятность ошибок ручной регистрации. Однако, обработка ошибок в getClassFromClassInfo может быть улучшена.

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 3f670ae and 79a3606.
Files ignored due to path filters (53)
  • src/test/resources/fixtures/mdclasses/Configuration.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/Configuration_edt.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/Constants.Константа1.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/Constants.Константа1_edt.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/DocumentNumerators.НумераторДокументов1.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/ExternalDataSources.ТекущаяСУБД.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/ExternalDataSources.ТекущаяСУБД_edt.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses/Subsystems.ПерваяПодсистема.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses_3_18/Configuration.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses_3_18/Configuration_edt.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses_ext/Configuration.json is excluded by !**/*.json
  • src/test/resources/fixtures/mdclasses_ext/Configuration_edt.json is excluded by !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Configuration.json is excluded by !**/*.json
  • src/test/resources/fixtures/ssl_3_1/Configuration_edt.json is excluded by !**/*.json
  • src/test/resources/metadata/original_broken/Configuration.xml is excluded by !**/*.xml
  • src/test/resources/metadata/original_broken/Form/Form.xml is excluded by !**/*.xml
  • src/test/resources/metadata/original_ext2/CommonModules/ПростойОбщийМодуль.xml is excluded by !**/*.xml
  • src/test/resources/metadata/original_ext2/CommonModules/СобственныйМодуль.xml is excluded by !**/*.xml
  • src/test/resources/metadata/original_ext2/ConfigDumpInfo.xml is excluded by !**/*.xml
  • src/test/resources/metadata/original_ext2/Configuration.xml is excluded by !**/*.xml
  • src/test/resources/metadata/original_ext2/Languages/Русский.xml is excluded by !**/*.xml
  • src/test/resources/metadata/original_ext2/Subsystems/ПерваяПодсистема.xml is excluded by !**/*.xml
  • src/test/resources/metadata/original_ordinary/Configuration.xml is excluded by !**/*.xml
  • src/test/resources/metadata/passwordmode/original/Catalogs/СправочникСПаролем.xml is excluded by !**/*.xml
  • src/test/resources/metadata/passwordmode/original/Catalogs/СправочникСПаролем/Forms/ФормаЭлемента.xml is excluded by !**/*.xml
  • src/test/resources/metadata/passwordmode/original/Catalogs/СправочникСПаролем/Forms/ФормаЭлемента/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/metadata/passwordmode/original/CommonAttributes/ОбщийРеквизит1.xml is excluded by !**/*.xml
  • src/test/resources/metadata/passwordmode/original/Configuration.xml is excluded by !**/*.xml
  • src/test/resources/metadata/passwordmode/original/Constants/Пароль.xml is excluded by !**/*.xml
  • src/test/resources/metadata/passwordmode/original/InformationRegisters/КакойТоРегистр.xml is excluded by !**/*.xml
  • src/test/resources/metadata/passwordmode/original/Languages/Русский.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/Catalogs/ПервыйСправочник.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/ВнешняяКомпонента.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/ГеографическаяСхема.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/ГеографическаяСхема/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/МакетHTML.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/МакетHTML/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/МакетОформленияСКД.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/МакетОформленияСКД/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/МакетСДвоичнымиДанными.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/МакетСКД.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/МакетСКД/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/ТабличныйМакет.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/ТабличныйМакет/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/CommonTemplates/ТекстовыйМакет.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/Configuration.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/Languages/Русский.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/Reports/Отчет1.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/Reports/Отчет1/Templates/ДвоичныеДанные.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/Reports/Отчет1/Templates/СКД.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/Reports/Отчет1/Templates/СКД/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/Reports/Отчет1/Templates/ТабличныйДокумент.xml is excluded by !**/*.xml
  • src/test/resources/metadata/skd/original/Reports/Отчет1/Templates/ТекстовыйДокумент.xml is excluded by !**/*.xml
Files selected for processing (47)
  • .gitignore (1 hunks)
  • build.gradle.kts (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdclasses/MDClasses.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/storage/RoleData.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/storage/XdtoPackageData.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/support/MultiLanguageString.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/support/ScriptVariant.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/FakeReader.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/MDOReader.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/MDReader.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/TransformationUtils.java (5 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/FormElementReaderContext.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/AbstractReadConverter.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/CommonAttributeUseContentConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/CommonModuleConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ConfigurationConverter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/DataCompositionSchemaConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/DataSetConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ExchangePlanAutoRecordConverter.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/MultiLanguageStringConverter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/RoleDataConverter.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/SubsystemConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/XdtoPackageDataConverter.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendReaderWrapper.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendStaxDriver.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendXStream.java (9 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/DesignerRootWrapper.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/ExchangePlanConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/FormElementConverter.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MDChildConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MetaDataObjectConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/RoleConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/TemplateConverter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/Unmarshaller.java (8 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/XDTOPackageConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ExternalDataSourceTableConverter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/RoleConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/TemplateConverter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/Unmarshaller.java (6 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/XDTOPackageConverter.java (2 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdo/WebServiceTest.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/test_utils/MDTestUtils.java (1 hunks)
Files not reviewed due to errors (3)
  • src/test/java/com/github/_1c_syntax/bsl/test_utils/MDTestUtils.java (no review received)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java (no review received)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java (no review received)
Files skipped from review due to trivial changes (5)
  • .gitignore
  • build.gradle.kts
  • src/main/java/com/github/_1c_syntax/bsl/mdo/storage/RoleData.java
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/DesignerRootWrapper.java
  • src/test/java/com/github/_1c_syntax/bsl/mdo/WebServiceTest.java
Additional comments not posted (87)
src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendReaderWrapper.java (1)

Line range hint 38-57: Класс ExtendReaderWrapper корректно реализован. Убедитесь, что метод getPath корректно обрабатывает потенциальные проблемы с путями файлов.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/RoleConverter.java (1)

40-51: Метод unmarshal корректно реализован. Убедитесь, что метод dataPath корректно строит путь и обрабатывает потенциальные ошибки.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/XDTOPackageConverter.java (1)

40-51: Метод unmarshal корректно реализован. Убедитесь, что метод dataPath корректно строит путь и обрабатывает потенциальные ошибки.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/RoleConverter.java (1)

40-53: Метод unmarshal корректно реализован. Убедитесь, что метод dataPath корректно строит путь и обрабатывает потенциальные ошибки.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/XDTOPackageConverter.java (1)

40-53: Метод unmarshal корректно реализован. Убедитесь, что метод dataPath корректно строит путь и обрабатывает потенциальные ошибки.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/ExchangePlanConverter.java (2)

41-42: В методе unmarshal корректно используется метод суперкласса для чтения контекста, а затем устанавливается специфическое значение на основе построенного пути. Использование метода dataPath здесь выглядит адекватно.


51-53: Метод dataPath корректно строит путь, комбинируя родительский каталог данного пути, имя и специфические подкаталоги и имя файла. Это кажется полезным методом для построения пути к файлу.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MetaDataObjectConverter.java (2)

44-54: Метод unmarshal пытается получить реальный класс из имени узла и выбрасывает исключение, если он равен null. Затем метод пытается прочитать значение и перехватывает ConversionException, чтобы залогировать и перебросить его. Обработка ошибок и использование логирования здесь корректны.


Line range hint 59-61: Метод canConvert проверяет, может ли данный тип быть присвоен от DesignerRootWrapper. Это стандартная реализация для конвертера.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ExternalDataSourceTableConverter.java (2)

47-47: В методе unmarshal проверяется наличие атрибутов, получается имя ребенка на основе позиции и читаются данные на основе построенного пути. Использование метода dataPath аналогично другим конвертерам.


58-61: Метод dataPath корректно строит путь, комбинируя родительский каталог данного пути, имя группы из MDOType, имя ребенка и специфическое имя файла. Это полезный метод для построения пути к файлу.

src/main/java/com/github/_1c_syntax/bsl/mdo/support/ScriptVariant.java (1)

71-71: Метод computeKeys инициализирует ConcurrentSkipListMap с учетом регистра, перебирает значения перечисления и помещает их в карту. Это обеспечивает потокобезопасный и нечувствительный к регистру доступ к ключам.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/CommonModuleConverter.java (1)

41-45: В методе unmarshal используются методы из mdReader для получения путей и источников конфигурации, устанавливаются значения в контексте читателя и строится результат. Использование методов mdReader для обработки путей и конфигурации выглядит адекватно.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/DataCompositionSchemaConverter.java (1)

55-55: В методе unmarshal происходит итерация по дочерним узлам, чтение значений, если они соответствуют определенному имени узла, и конструирование объекта DataCompositionSchema. Использование ExtendXStream.readValue для чтения значений выглядит адекватно.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ConfigurationConverter.java (3)

41-41: Добавлен аннотация @CommonConverter.


50-50: Используется метод findAll для подсчета количества расширений конфигурации. Убедитесь, что это не влияет на производительность при больших файлах.


59-59: Метод unmarshal использует MDCReaderContext для чтения и построения объекта. Проверьте, что все необходимые поля корректно устанавливаются в MDCReaderContext.

Verification successful

Метод unmarshal в MDReader и Unmarshaller корректно устанавливает необходимые поля в MDCReaderContext, такие как name, value, compatibilityMode и другие. Поля устанавливаются через методы setName, setValue, setCompatibilityMode и другие, что подтверждает корректность их установки.

  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/Unmarshaller.java
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка корректности установки полей в MDCReaderContext.

# Тест: Проверка, что все поля корректно устанавливаются в MDCReaderContext. Ожидаемое: все поля должны быть корректно установлены.
echo "Проверка корректности установки полей в MDCReaderContext"

Length of output: 122



Script:

#!/bin/bash
# Find the definition of the MDCReaderContext class and list its fields
ast-grep --lang java --pattern $'class MDCReaderContext {
  $$$
}' --json

# Find where the fields of MDCReaderContext are set
rg 'MDCReaderContext' -A 10

Length of output: 16704



Script:

#!/bin/bash
# Find the definition of the unmarshal method in MdReader and its usage
ast-grep --lang java --pattern $'class MdReader {
  $$$
  void unmarshal($_, $_, $_) {
    $$$
  }
  $$$
}' --json

# Find where the unmarshal method is called and how it interacts with MDCReaderContext
rg 'unmarshal' -A 10

Length of output: 65325

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/FormElementConverter.java (2)

40-40: Добавлена константа CONDITIONAL_APPEARANCE_TYPE_NAME. Убедитесь, что она используется в соответствующих местах кода.

Verification successful

Константа CONDITIONAL_APPEARANCE_TYPE_NAME используется в коде.

  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/FormElementConverter.java:
    • Объявление константы.
    • Использование в условии if.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка использования константы CONDITIONAL_APPEARANCE_TYPE_NAME.

# Тест: Поиск использования константы в коде. Ожидаемое: константа используется в нужных местах.
echo "Проверка использования константы CONDITIONAL_APPEARANCE_TYPE_NAME"

Length of output: 140



Script:

#!/bin/bash
# Описание: Проверка использования константы CONDITIONAL_APPEARANCE_TYPE_NAME.

# Тест: Поиск использования константы в коде. Ожидаемое: константа используется в нужных местах.
rg 'CONDITIONAL_APPEARANCE_TYPE_NAME' --glob '!*.{md,txt}' --glob '!*test*'

Length of output: 422


44-47: Обработка условного внешнего вида элемента формы. Убедитесь, что это соответствует требованиям к функциональности.

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/FormElementReaderContext.java (2)

53-56: Конструктор FormElementReaderContext инициализирует realClass и builder. Убедитесь, что все необходимые зависимости корректно передаются и обрабатываются.

Verification successful

Конструктор FormElementReaderContext корректно инициализирует realClass и builder. Метод realClassByName инициализирует realClass, а метод TransformationUtils.builder используется для инициализации builder. Все зависимости корректно передаются и обрабатываются.

  • realClass инициализируется методом realClassByName.
  • builder инициализируется методом TransformationUtils.builder.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка корректности передачи и обработки зависимостей в конструкторе FormElementReaderContext.

# Тест: Проверка, что все зависимости корректно передаются и обрабатываются. Ожидаемое: зависимости корректно переданы и обработаны.
echo "Проверка корректности передачи и обработки зависимостей в конструкторе FormElementReaderContext"

Length of output: 200



Script:

#!/bin/bash
# Find the definition of the FormElementReaderContext constructor
ast-grep --lang java --pattern $'class FormElementReaderContext {
  $$$
  public FormElementReaderContext(@NonNull String elementName, @NonNull HierarchicalStreamReader reader) {
    $$$
  }
  $$$
}'

# Find the definition of the realClassByName method
ast-grep --lang java --pattern $'class FormElementReaderContext {
  $$$
  private Class<?> realClassByName(String elementName) {
    $$$
  }
  $$$
}'

# Find the usage of the builder in the FormElementReaderContext class
rg 'builder' --context 5 --glob '*.java'

Length of output: 52012


38-38: Добавлена аннотация @EqualsAndHashCode(callSuper = true). Убедитесь, что это корректно реализовано в контексте наследования.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/TemplateConverter.java (1)

46-47: Метод dataPath используется для определения пути к данным шаблона. Убедитесь, что путь корректно формируется для всех типов шаблонов.

src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendStaxDriver.java (2)

48-50: Конструктор ExtendStaxDriver принимает MDReader и QNameMap. Убедитесь, что все параметры корректно используются внутри конструктора.

Verification successful

Параметры конструктора ExtendStaxDriver корректно используются внутри класса. Параметр reader присваивается полю this.mdReader и используется в ExtendReaderWrapper. Параметр qNameMap передается в конструктор суперкласса.

  • Параметр reader используется на строках:

    • this.mdReader = reader;
    • return new ExtendReaderWrapper(reader, in, xmlStreamReader, mdReader)
  • Параметр qNameMap используется на строке:

    • super(qNameMap);
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка корректного использования параметров в конструкторе ExtendStaxDriver.

# Тест: Проверка, что все параметры корректно используются. Ожидаемое: параметры корректно используются.
echo "Проверка корректного использования параметров в конструкторе ExtendStaxDriver"

Length of output: 164



Script:

#!/bin/bash
# Описание: Проверка корректного использования параметров в конструкторе ExtendStaxDriver.

# Найти определение конструктора ExtendStaxDriver
ast-grep --lang java --pattern $'class ExtendStaxDriver {
  $$$
  public ExtendStaxDriver(MDReader reader, QNameMap qNameMap) {
    $$$
  }
  $$$
}' > constructor.txt

# Проверить использование параметров внутри конструктора и класса
grep -E 'reader|qNameMap' constructor.txt

Length of output: 193



Script:

#!/bin/bash
# Описание: Проверка корректного использования параметров в классе ExtendStaxDriver.

# Найти использование параметров reader и qNameMap в классе ExtendStaxDriver
ast-grep --lang java --pattern $'class ExtendStaxDriver {
  $$$
  public ExtendStaxDriver(MDReader reader, QNameMap qNameMap) {
    $$$
  }
  $$$
}' > class_content.txt

# Проверить использование параметров внутри класса
grep -E 'reader|qNameMap' class_content.txt

Length of output: 195



Script:

#!/bin/bash
# Описание: Проверка корректного использования параметров в классе ExtendStaxDriver.

# Найти использование параметров reader и qNameMap в классе ExtendStaxDriver
rg 'reader|qNameMap' src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendStaxDriver.java

Length of output: 458


72-72: Метод createReader оборачивает стандартный ридер в ExtendReaderWrapper. Убедитесь, что все необходимые методы и поля корректно передаются и используются.

Verification successful

The createReader method in ExtendStaxDriver correctly creates and passes the necessary parameters to ExtendReaderWrapper, including reader, in, xmlStreamReader, and mdReader. The ExtendReaderWrapper class correctly uses these parameters.

  • reader is created by createStaxReader(xmlStreamReader).
  • in is the File parameter passed to createReader.
  • xmlStreamReader is created by createParser(new StreamSource(stream, in.toURI().toASCIIString())).
  • mdReader is assumed to be correctly instantiated and passed, as it is used in the ExtendReaderWrapper constructor.

No issues were found with the method and field usage in the createReader method.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка корректности передачи и использования методов и полей в методе createReader.

# Тест: Проверка, что все необходимые методы и поля корректно передаются и используются. Ожидаемое: методы и поля корректно переданы и используются.
echo "Проверка корректности передачи и использования методов и полей в методе createReader"

Length of output: 178



Script:

#!/bin/bash
# Find the implementation of the createReader method
ast-grep --lang java --pattern 'createReader($_, $_, $_, $_)' > createReader_method.txt

# Find the implementation of the ExtendReaderWrapper class
ast-grep --lang java --pattern 'class ExtendReaderWrapper' > ExtendReaderWrapper_class.txt

# Output the results for further analysis
cat createReader_method.txt
cat ExtendReaderWrapper_class.txt

Length of output: 535



Script:

#!/bin/bash
# Find the implementation of the createReader method with a more flexible pattern
ast-grep --lang java --pattern 'createReader($_$$$)' > createReader_method.txt

# Find the implementation of the ExtendReaderWrapper class with a more flexible pattern
ast-grep --lang java --pattern 'class ExtendReaderWrapper { $$$ }' > ExtendReaderWrapper_class.txt

# Output the results for further analysis
cat createReader_method.txt
cat ExtendReaderWrapper_class.txt

Length of output: 189



Script:

#!/bin/bash
# Find the implementation of the createReader method using rg
rg 'createReader' > createReader_method.txt

# Find the implementation of the ExtendReaderWrapper class using rg
rg 'class ExtendReaderWrapper' > ExtendReaderWrapper_class.txt

# Output the results for further analysis
cat createReader_method.txt
cat ExtendReaderWrapper_class.txt

Length of output: 1473



Script:

#!/bin/bash
# Extract the createReader method implementation from MDOReader.java
rg -A 20 'private MDReader createReader' src/main/java/com/github/_1c_syntax/bsl/reader/MDOReader.java > createReader_method_impl.txt

# Extract the ExtendReaderWrapper class implementation from ExtendReaderWrapper.java
rg -A 50 'public class ExtendReaderWrapper' src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendReaderWrapper.java > ExtendReaderWrapper_class_impl.txt

# Output the results for further analysis
cat createReader_method_impl.txt
cat ExtendReaderWrapper_class_impl.txt

Length of output: 2277



Script:

#!/bin/bash
# Extract the createReader method implementation from ExtendStaxDriver.java
rg -A 20 'public HierarchicalStreamReader createReader' src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendStaxDriver.java > createReader_method_extendstaxdriver.txt

# Output the results for further analysis
cat createReader_method_extendstaxdriver.txt

Length of output: 872

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/MultiLanguageStringConverter.java (1)

48-56: Метод unmarshal обрабатывает многоязычные строки. Убедитесь, что логика обработки соответствует требованиям к поддержке различных источников конфигурации.

Verification successful

Логика метода unmarshal для обработки многоязычных строк соответствует требованиям к поддержке различных источников конфигурации.

  • Метод проверяет наличие дочерних элементов и обрабатывает их в зависимости от источника конфигурации.
  • Если источник конфигурации DESIGNER, метод обрабатывает несколько дочерних элементов.
  • В противном случае, метод обрабатывает одну пару ключ-значение.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка соответствия логики обработки многоязычных строк требованиям.

# Тест: Проверка, что логика обработки соответствует требованиям к поддержке различных источников конфигурации. Ожидаемое: логика обработки соответствует требованиям.
echo "Проверка соответствия логики обработки многоязычных строк требованиям"

Length of output: 148



Script:

#!/bin/bash
# Locate the `unmarshal` method in the `MultiLanguageStringConverter` class and display its implementation
ast-grep --lang java --pattern $'class MultiLanguageStringConverter {
  $$$
  public Object unmarshal($_) {
    $$$
  }
  $$$
}' --json

Length of output: 139



Script:

#!/bin/bash
# Locate the `MultiLanguageStringConverter` class
fd -e java -x grep -Hn 'class MultiLanguageStringConverter' {} \;

# Locate the `unmarshal` method within the `MultiLanguageStringConverter` class
fd -e java -x grep -Hn 'public Object unmarshal' {} \;

Length of output: 6653



Script:

#!/bin/bash
# Extract and display the implementation of the `unmarshal` method from the `MultiLanguageStringConverter` class
sed -n '43,63p' ./src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/MultiLanguageStringConverter.java

Length of output: 894

src/main/java/com/github/_1c_syntax/bsl/mdo/storage/XdtoPackageData.java (1)

22-22: Проверьте, что удаление метода create не нарушает работу других частей кода.

Verification successful

Удаление метода create из класса XdtoPackageData не нарушает работу других частей кода.

  • В кодовой базе не найдено прямых или косвенных ссылок на метод XdtoPackageData.create.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка на наличие вызовов удаленного метода `create`.

# Тест: Поиск использования метода. Ожидаем: Нет результатов.
rg --type java $'XdtoPackageData.create'

Length of output: 39



Script:

#!/bin/bash
# Описание: Проверка на наличие косвенных ссылок на удаленный метод `create`.

# Тест 1: Поиск упоминаний метода `create` в комментариях и документации.
rg --type java 'create'

# Тест 2: Поиск упоминаний метода `create` в интерфейсах и абстрактных классах.
rg --type java 'create('

# Тест 3: Поиск упоминаний метода `create` в тестовых файлах.
rg --type java --glob '*Test.java' 'create'

Length of output: 14411

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/CommonAttributeUseContentConverter.java (1)

22-29: Импорты корректно добавлены для поддержки изменений в методе unmarshal.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/SubsystemConverter.java (1)

22-34: Импорты корректно добавлены для поддержки изменений в методе unmarshal.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MDChildConverter.java (2)

22-34: Импорты корректно добавлены для поддержки изменений в методе unmarshal.


Line range hint 39-84: Метод unmarshal корректно обрабатывает различные типы дочерних элементов MD. Убедитесь, что все тесты покрывают новую логику.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/TemplateConverter.java (1)

22-36: Импорты корректно добавлены для поддержки изменений в методе unmarshal.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ExchangePlanAutoRecordConverter.java (1)

22-34: Импорты корректно добавлены для поддержки изменений в методе unmarshal.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/RoleDataConverter.java (4)

26-26: Добавлены новые импорты для работы с ExtendXStream и ReadConverter. Убедитесь, что эти классы используются в коде, чтобы избежать неиспользуемых импортов.

Verification successful

Импорты ExtendXStream и ReadConverter действительно используются в файле RoleDataConverter.java.

  • ExtendXStream используется в нескольких местах для чтения значений.
  • ReadConverter используется в объявлении класса.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Проверка использования классов ExtendXStream и ReadConverter в файле RoleDataConverter.java
rg --type java 'ExtendXStream|ReadConverter' src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/RoleDataConverter.java

Length of output: 532


89-89: Использование ExtendXStream.readValue для чтения значений. Проверьте, что нет проблем с типами данных, особенно если XML содержит нестандартные или неожиданные значения.


73-73: Аналогичное использование ExtendXStream.readValue в другом контексте. Проверьте, что обработка типов данных адекватна и не приводит к ошибкам при разборе XML.


53-53: Использование ExtendXStream.readValue для чтения значений поля. Это изменение связано с рефакторингом для использования расширенных возможностей XStream. Убедитесь, что метод readValue корректно обрабатывает все типы данных, которые могут встретиться в этом контексте.

src/main/java/com/github/_1c_syntax/bsl/reader/FakeReader.java (11)

49-58: Метод getConfigurationSource теперь возвращает константу ConfigurationSource.EMPTY. Это изменение упрощает тестирование и разработку, избегая зависимости от внешних конфигураций.


56-58: Метод readConfiguration изменен для возврата пустой конфигурации. Это упрощает процесс тестирования и разработки, предоставляя стандартный ответ без внешних зависимостей.


62-63: Метод readExternalSource изменен аналогично предыдущим, возвращая пустой объект ExternalReport. Это обеспечивает консистентность в поведении заглушек.


68-69: Метод getRootPath теперь возвращает фиктивный путь, что упрощает тестирование в изолированной среде.


74-76: Методы read(Path path) и read(Path folder, String fullName) изменены для возврата null, что указывает на отсутствие реализации в данной заглушке. Это стандартное поведение для тестовых заглушек.

Also applies to: 79-79


85-86: Метод getXstream изменен для возврата null, подчеркивая, что в этой реализации не предполагается работа с реальными XML данными.


91-93: Метод readFormData изменен для возврата пустой формы данных. Это упрощает процесс тестирования и разработки, предоставляя стандартный ответ без внешних зависимостей.


98-99: Методы moduleFolder, modulePath и mdoTypeFolderPath изменены для возврата фиктивного пути, что упрощает тестирование в изолированной среде.

Also applies to: 103-105, 109-111


115-117: Методы subsystemsNodeName и configurationExtensionFilter изменены для возврата пустой строки, что является стандартным ответом для тестовых заглушек.

Also applies to: 120-122


127-130: Метод unmarshal не выполняет никаких действий (no-op), что соответствует ожидаемому поведению заглушки в тестовых сценариях.


24-38: Добавлены новые импорты, которые поддерживают изменения в методах класса. Убедитесь, что все импортированные классы используются в коде.

Verification successful

Все импортированные классы используются в коде.

  • Configuration используется в методе readConfiguration.
  • ExternalReport используется в методе readExternalSource.
  • ExternalSource используется в методе readExternalSource.
  • MDClass используется в методе readConfiguration.
  • MDObject используется в методах read.
  • EmptyFormData используется в методе readFormData.
  • FormData используется в методе readFormData.
  • AbstractReaderContext используется в методе modulePath.
  • ExtendXStream используется в методе getXstream.
  • ConfigurationSource используется в методе getConfigurationSource.
  • MDOType используется в методах readFormData, moduleFolder, и modulePath.
  • ModuleType используется в методе modulePath.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Проверка использования импортированных классов в FakeReader.java
rg --type java 'Configuration|ExternalReport|ExternalSource|MDClass|MDObject|EmptyFormData|FormData|AbstractReaderContext|ExtendXStream|ConfigurationSource|MDOType|ModuleType' src/main/java/com/github/_1c_syntax/bsl/reader/FakeReader.java

Length of output: 1824

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/DataSetConverter.java (2)

27-27: Добавлены новые импорты для работы с ExtendXStream и ReadConverter. Убедитесь, что эти классы используются в коде, чтобы избежать неиспользуемых импортов.

Verification successful

Импорты ExtendXStream и ReadConverter используются в файле DataSetConverter.java, что подтверждает их необходимость.

  • ExtendXStream используется в методах readValue.
  • ReadConverter используется в объявлении класса.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Проверка использования классов ExtendXStream и ReadConverter в файле DataSetConverter.java
rg --type java 'ExtendXStream|ReadConverter' src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/DataSetConverter.java

Length of output: 504


59-59: Использование ExtendXStream.readValue для чтения значений из XML. Это изменение улучшает интеграцию с библиотекой XStream, позволяя более гибко обрабатывать данные. Убедитесь, что метод readValue корректно обрабатывает все типы данных, которые могут встретиться в этом контексте.

Also applies to: 63-63

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java (6)

58-59: Добавление новых полей для управления режимами совместимости и хранения дочерних имен. Это изменение улучшает управление контекстом чтения и обеспечивает более гибкую настройку поведения.

Also applies to: 64-65, 70-70


73-86: Переработка конструктора и метода setValue. Эти изменения улучшают интеграцию и расширяемость класса, позволяя более гибко управлять данными.


89-94: Метод setValue теперь обрабатывает строки и типы MDO, добавляя их в список childrenNames. Это изменение улучшает управление зависимостями между объектами.


99-110: Переработка метода build, включая новые вызовы setValue. Эти изменения обеспечивают более точное управление состоянием объекта во время сборки.


114-122: Метод setValueChildren использует параллельные потоки для обработки дочерних элементов, что может улучшить производительность при обработке больших данных.


31-39: Добавлены новые аннотации EqualsAndHashCode, Slf4j, Setter и другие, которые улучшают читаемость и поддержку кода. Убедитесь, что эти аннотации корректно интегрированы и не вызывают конфликтов в проекте.

Verification successful

Аннотации @EqualsAndHashCode, @slf4j и @Setter корректно интегрированы в класс MDCReaderContext, и не вызывают конфликтов в проекте.

  • Аннотации присутствуют в классе MDCReaderContext.
  • Не обнаружено ошибок компиляции или выполнения, связанных с этими аннотациями.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Проверка использования аннотаций в MDCReaderContext.java
rg --type java '@EqualsAndHashCode|@Slf4j|@Setter' src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java

Length of output: 200



Script:

#!/bin/bash
# Check the usage of the annotations in the MDCReaderContext class
ast-grep --lang java --pattern $'@EqualsAndHashCode(callSuper = true)\nclass MDCReaderContext {\n  $$$\n}' src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java

# Check for any compilation or runtime issues related to these annotations in the codebase
rg 'error|exception|conflict' --type java

Length of output: 1670

src/main/java/com/github/_1c_syntax/bsl/reader/MDReader.java (7)

49-58: Метод getConfigurationSource и getRootPath теперь аннотированы как @NonNull, что улучшает контракт интерфейса, обеспечивая, что эти методы не возвращают null.


66-74: Методы readConfiguration и readExternalSource теперь аннотированы как @NonNull, что гарантирует, что они всегда возвращают валидный объект, улучшая надежность интерфейса.


83-85: Добавление методов read с различными сигнатурами, использующих пути для чтения данных. Это улучшает гибкость интерфейса, позволяя клиентам выбирать наиболее подходящий способ чтения.

Also applies to: 94-95


111-111: Метод getXstream теперь возвращает ExtendXStream, что может улучшить интеграцию с библиотекой XStream и обеспечить более гибкую обработку XML.


122-122: Методы readFormData, moduleFolder, modulePath, mdoTypeFolderPath, subsystemsNodeName, и configurationExtensionFilter теперь аннотированы как @NonNull, что улучшает контракт интерфейса и обеспечивает, что эти методы не возвращают null.

Also applies to: 132-143, 152-168


177-177: Метод unmarshal теперь принимает AbstractReaderContext в качестве параметра, что улучшает гибкость и расширяемость интерфейса.


24-34: Добавлены новые импорты, поддерживающие изменения в методах интерфейса. Убедитесь, что все импортированные классы используются в коде.

Verification successful

Все импортированные классы используются в коде MDReader.java.

  • ExternalSource используется в методе readExternalSource.
  • MDClass используется в методе readConfiguration.
  • FormData используется в методе readFormData.
  • AbstractReaderContext используется в методе unmarshal.
  • ExtendXStream используется в методе getXstream.
  • ConfigurationSource используется в методе getConfigurationSource.
  • MDOType используется в методах readFormData и moduleFolder.
  • ModuleType используется в методе modulePath.
Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Проверка использования импортированных классов в MDReader.java
rg --type java 'ExternalSource|MDClass|FormData|AbstractReaderContext|ExtendXStream|ConfigurationSource|MDOType|ModuleType' src/main/java/com/github/_1c_syntax/bsl/reader/MDReader.java

Length of output: 1370

src/main/java/com/github/_1c_syntax/bsl/reader/MDOReader.java (6)

63-63: Использование метода createReader упрощает процесс чтения конфигураций, делая код более читаемым и поддерживаемым.


72-84: Метод read был переработан для поддержки условного чтения, что улучшает гибкость использования класса в различных сценариях.


99-100: Метод readExternalSource теперь использует createReader для создания экземпляра чтения, что упрощает процесс и повышает его надежность.


102-116: Рефакторинг метода createReader с использованием ConfigurationSource улучшает читаемость и поддерживаемость кода, позволяя легче управлять различными типами источников конфигурации.


120-129: Метод getConfigurationSourceByPath теперь более четко разделяет логику определения типа конфигурации, что упрощает его понимание и поддержку.


138-148: Метод getConfigurationSourceByPathSimple упрощен для более быстрого определения типа конфигурации на основе расширения файла. Это улучшение помогает в оптимизации производительности.

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java (2)

150-155: Добавлен метод setValueModules, который управляет модулями в контексте чтения. Это улучшение помогает централизовать логику работы с модулями и упрощает расширение функциональности класса.


157-184: Метод readModules теперь читает модули более эффективно, используя новую логику определения и чтения модулей на основе типа MDO. Это улучшение повышает производительность и надежность процесса чтения.

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java (3)

67-67: Добавление аннотаций @EqualsAndHashCode, @Slf4j, @ToString улучшает возможности логирования и сравнения объектов контекста, что важно для отладки и управления состоянием.


110-140: Переработка метода build с добавлением обработки исключений и логирования улучшает устойчивость системы к ошибкам и облегчает диагностику проблем.


Line range hint 146-164: Метод setValueChildren теперь корректно обрабатывает дочерние контексты, что улучшает управление зависимостями между объектами и их свойствами.

src/main/java/com/github/_1c_syntax/bsl/reader/common/TransformationUtils.java (2)

Line range hint 49-127: Переработка методов setValue и build с добавлением логирования ошибок улучшает отслеживание и устранение проблем при работе с объектами. Это важно для обеспечения надежности и стабильности системы.


Line range hint 150-178: Метод getMethod теперь использует ConcurrentSkipListMap для управления кэшированием методов, что улучшает производительность и потокобезопасность.

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/XdtoPackageDataConverter.java (1)

150-163: Улучшена обработка вложенных свойств в readTypeDef, что позволяет более гибко управлять структурой данных XDTO.

src/main/java/com/github/_1c_syntax/bsl/mdclasses/MDClasses.java (1)

64-64: Изменение возвращаемого типа метода createExternalReport на ExternalSource улучшает точность типизации и согласованность API.

src/main/java/com/github/_1c_syntax/bsl/mdo/support/MultiLanguageString.java (2)

37-37: Добавление импорта java.util.stream.Collectors корректно, так как он используется в новом методе toString().


180-188: Новый метод toString() корректно реализован: он проверяет, пустой ли объект, и возвращает "empty" или соединяет все записи в читаемом формате. Использование потоков здесь эффективно.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/Unmarshaller.java (4)

60-71: Изменения в методе unmarshal корректны: теперь метод проверяет тип readerContext и вызывает соответствующий перегруженный метод unmarshal. Это упрощает логику и повышает читаемость кода.


Line range hint 98-116: Изменения в приватных методах unmarshal для MDReaderContext и MDCReaderContext корректны. Они теперь правильно инкапсулированы и обрабатывают специфическую логику для каждого типа контекста, что улучшает поддерживаемость.


Line range hint 136-146: Изменения в методах readItemNode и readNode улучшают процесс чтения значений, используя ExtendXStream.readValue для чтения значений на основе класса поля, что обеспечивает типобезопасность.


Line range hint 151-177: Изменения в методе readPropertiesNode корректны. Метод теперь обрабатывает различные типы значений и устанавливает их в контексте. Также обрабатываются специфические свойства для MDReaderContext и MDCReaderContext, что является хорошей практикой для обработки типоспецифичной логики.

src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendXStream.java (4)

97-98: Конструктор корректно инициализирует объект с использованием пользовательского драйвера ExtendStaxDriver. Отличная работа!


146-148: Метод корректно делегирует получение класса текущему MDReader. Это хороший пример использования делегирования и инкапсуляции.


169-170: Метод корректно использует MDReader для чтения объекта из файла. Это соответствует общей архитектуре класса.


238-244: Метод эффективно регистрирует только необходимые конвертеры, что является хорошей практикой для оптимизации производительности и повышения безопасности.

Comment on lines +102 to +103
public ExtendXStream(MDReader reader, QNameMap qNameMap, ClassLoaderReference classLoaderReference, Mapper mapper) {
super(new PureJavaReflectionProvider(), new ExtendStaxDriver(reader, qNameMap), classLoaderReference, mapper);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Метод корректно переопределяет базовую функциональность, добавляя обработку ошибок. Рекомендую повысить уровень логирования для CannotResolveClassException с debug до error, чтобы обеспечить более эффективное устранение проблем.

Comment on lines +33 to +37
protected MDReaderContext read(HierarchicalStreamReader reader, UnmarshallingContext context) {
var readerContext = new MDReaderContext(reader);
readerContext.getMdReader().unmarshal(reader, context, readerContext);
return readerContext;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавьте обработку исключений при вызове unmarshal для предотвращения потенциальных ошибок выполнения.

protected MDReaderContext read(HierarchicalStreamReader reader, UnmarshallingContext context) {
  var readerContext = new MDReaderContext(reader);
  try {
    readerContext.getMdReader().unmarshal(reader, context, readerContext);
  } catch (Exception e) {
    // Логирование ошибки и обработка исключения
    LOGGER.error("Ошибка при разборе: ", e);
  }
  return readerContext;
}

Comment on lines +39 to +85
@CommonConverter
public class CommonAttributeUseContentConverter implements ReadConverter {

private static final String METADATA_NODE_NAME = "Metadata";
private static final String USE_NODE_NAME = "Use";

@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
List<CommonAttribute.UseContent> contents = new ArrayList<>();
while (reader.hasMoreChildren()) {
reader.moveDown();
contents.add(ConverterParts.commonAttributeUseContent(reader, context));
reader.moveUp();
if (ExtendXStream.getCurrentMDReader(reader).getConfigurationSource() == ConfigurationSource.DESIGNER) {
List<CommonAttribute.UseContent> contents = new ArrayList<>();
while (reader.hasMoreChildren()) {
reader.moveDown();
contents.add(commonAttributeUseContent(reader, context));
reader.moveUp();
}
return contents;
} else {
return commonAttributeUseContent(reader, context);
}
return contents;
}

@Override
public boolean canConvert(Class type) {
return CommonAttribute.UseContent.class.isAssignableFrom(type);
}

private static CommonAttribute.UseContent commonAttributeUseContent(HierarchicalStreamReader reader,
UnmarshallingContext context) {
if (!reader.hasMoreChildren()) {
return null;
}

var builder = CommonAttribute.UseContent.builder();
while (reader.hasMoreChildren()) {
reader.moveDown();
var node = reader.getNodeName();
if (METADATA_NODE_NAME.equalsIgnoreCase(node)) {
builder.metadata(MdoReference.create(reader.getValue()));
} else if (USE_NODE_NAME.equalsIgnoreCase(node)) {
builder.use(ExtendXStream.readValue(context, UseMode.class));
} else {
// no-op
}
reader.moveUp();
}
return builder.build();
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

Не удалось найти тесты, покрывающие метод unmarshal в классе CommonAttributeUseContentConverter. Рекомендуется добавить тесты для проверки новой логики в этом методе.

  • Отсутствие тестов для класса CommonAttributeUseContentConverter.
  • Необходимость добавления тестов для метода unmarshal.
Analysis chain

Метод unmarshal корректно обрабатывает различные источники конфигурации. Убедитесь, что все тесты покрывают новую логику.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка покрытия тестами новой логики в методе `unmarshal`.

# Тест: Поиск тестов для `unmarshal`. Ожидаем: Тесты присутствуют.
rg --type java $'test.*unmarshal'

Length of output: 34



Script:

#!/bin/bash
# Поиск тестов, связанных с классом `CommonAttributeUseContentConverter`.

# Поиск тестовых классов, которые могут тестировать `CommonAttributeUseContentConverter`.
rg --type java 'CommonAttributeUseContentConverter'

# Поиск тестовых методов, которые могут тестировать методы класса `CommonAttributeUseContentConverter`.
rg --type java '@Test' -A 3

Length of output: 2789

Comment on lines +39 to +89
@CommonConverter
public class ExchangePlanAutoRecordConverter implements ReadConverter {

@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
if (!reader.hasMoreChildren()) {
return null;
}
if (ExtendXStream.getCurrentMDReader(reader).getConfigurationSource() == ConfigurationSource.DESIGNER) {
List<ExchangePlan.RecordContent> content = new ArrayList<>();
while (reader.hasMoreChildren()) { // root
reader.moveDown();
content.add(
exchangePlanAutoRecord(reader, context, "Metadata", "AutoRecord")
);
reader.moveUp();
}
return content;
} else {
return exchangePlanAutoRecord(reader, context, "mdObject", "autoRecord");
}
}

@Override
public boolean canConvert(Class type) {
return ExchangePlan.RecordContent.class.isAssignableFrom(type);
}

private static ExchangePlan.RecordContent exchangePlanAutoRecord(HierarchicalStreamReader reader,
UnmarshallingContext context,
String mdoNodeName,
String autoRecordNodeName) {
if (!reader.hasMoreChildren()) {
return null;
}

var builder = ExchangePlan.RecordContent.builder();
while (reader.hasMoreChildren()) {
reader.moveDown();
var node = reader.getNodeName();
if (mdoNodeName.equals(node)) {
builder.metadata(MdoReference.create(reader.getValue()));
} else if (autoRecordNodeName.equals(node)) {
builder.autoRecord(ExtendXStream.readValue(context, AutoRecordType.class));
} else {
// no-op
}
reader.moveUp();
}
return builder.build();
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

Проверка не выявила тестов, которые напрямую или косвенно проверяют метод unmarshal в классе ExchangePlanAutoRecordConverter. Это может означать, что новая логика не покрыта тестами.

  • Убедитесь, что тесты для метода unmarshal в классе ExchangePlanAutoRecordConverter добавлены и покрывают все возможные сценарии.
Analysis chain

Метод unmarshal корректно обрабатывает различные типы записей плана обмена. Убедитесь, что все тесты покрывают новую логику.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Описание: Проверка покрытия тестами новой логики в методе `unmarshal`.

# Тест: Поиск тестов для `unmarshal`. Ожидаем: Тесты присутствуют.
rg --type java $'test.*unmarshal'

Length of output: 34



Script:

#!/bin/bash
# Описание: Проверка покрытия тестами новой логики в методе `unmarshal`.

# Тест: Поиск тестов, которые используют `ExchangePlanAutoRecordConverter`.
rg --type java 'ExchangePlanAutoRecordConverter' --files-with-matches --glob '*Test.java' | xargs rg 'unmarshal'

Length of output: 9068



Script:

#!/bin/bash
# Описание: Проверка покрытия тестами новой логики в методе `unmarshal`.

# Тест: Поиск тестов, которые используют `ExchangePlanAutoRecordConverter`.
rg --type java 'ExchangePlanAutoRecordConverter' --files-with-matches --glob '*Test.java' | xargs rg 'unmarshal'

Length of output: 9068

*/
@Slf4j
@DesignerConverter
@CommonConverter

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

Аннотация @CommonConverter используется в нескольких местах, включая MultiLanguageStringConverter.java, но её определение не найдено в кодовой базе. Это может указывать на то, что аннотация отсутствует или неправильно определена.

  • Проверьте, что аннотация @CommonConverter определена и импортирована корректно.
  • Убедитесь, что файл с определением аннотации включён в проект.

Категория:

Analysis chain

Добавлена аннотация @CommonConverter. Убедитесь, что она корректно применяется в контексте использования этого конвертера.


#!/bin/bash
# Описание: Проверка определения аннотации @CommonConverter.

# Найти определение аннотации @CommonConverter
echo "Поиск определения аннотации @CommonConverter"
rg --glob '!*.jar' --glob '!*.class' --glob '!*.json' --glob '!*.md' --glob '!*.xml' --glob '!*.yml' --glob '!*.yaml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!*.kts' --glob '!*.groovy' --glob '!*.gradle' --glob '!*.xml' --glob '!*.xsd' --glob '!*.xsl' --glob '!*.xslt' --glob '!*.dtd' --glob '!*.svg' --glob '!*.json5' --glob '!*.toml' --glob '!*.ini' --glob '!*.conf' --glob '!*.cfg' --glob '!*.yaml' --glob '!*.yml' --glob '!*.properties' --glob '!*.txt' --glob '!*.log' --glob '!*.csv' --glob '!*.tsv' --glob '!*.sql' --glob '!*.sh' --glob '!*.bat' --glob '!*.ps1' --glob '!*.py' --glob '!*.rb' --glob '!*.pl' --glob '!*.php' --glob '!*.html' --glob '!*.css' --glob '!*.scss' --glob '!*.sass' --glob '!*.less' --glob '!*.js' --glob '!*.jsx' --glob '!*.ts' --glob '!*.tsx' --glob '!*.vue' --glob '!*.go' --glob '!*.rs' --glob '!*.cpp' --glob '!*.c' --glob '!*.h' --glob '!*.hpp' --glob '!*.m' --glob '!*.swift' --glob '!*.kt' --glob '!

</details>

<details>
<summary>Scripts Executed</summary>

The following scripts were executed for the analysis:



---

Script:
```shell
#!/bin/bash
# Описание: Проверка корректности применения аннотации @CommonConverter.

# Тест: Проверка, что аннотация корректно применяется. Ожидаемое: аннотация корректно применяется.
echo "Проверка корректности применения аннотации @CommonConverter"

Length of output: 128



Script:

#!/bin/bash
# Описание: Проверка корректности применения аннотации @CommonConverter.

# Найти определение аннотации @CommonConverter
echo "Поиск определения аннотации @CommonConverter"
ast-grep --lang java --pattern '@interface CommonConverter { $$$ }'

# Найти все места использования аннотации @CommonConverter
echo "Поиск использования аннотации @CommonConverter"
ast-grep --lang java --pattern '@CommonConverter' 

Length of output: 1941


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant