Оптимизации#467
Conversation
|
Warning Rate limit exceeded@theshadowco has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 0 minutes and 37 seconds before requesting another review. How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. WalkthroughВнесены изменения в зависимости и классы проекта, обновлена версия Changes
Poem
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? TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Actionable comments posted: 4
Outside diff range, codebase verification and nitpick comments (3)
src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ProtectedModuleInfo.java (1)
51-71: Отсутствуют тесты для классаProtectedModuleInfo.На основании анализа, классу
ProtectedModuleInfoне хватает тестового покрытия, что может привести к невыявленным ошибкам и проблемам в работе с защищенными модулями. Рекомендуется добавить тесты для проверки функциональности этого класса.
- Отсутствуют тесты, проверяющие
ProtectedModuleInfoнапрямую или косвенно.Analysis chain
Инициализация и проверка защищенности модуля выглядят правильными.
Логика конструктора корректно обрабатывает случаи, когда модуль не существует или защищен.
Однако, рекомендуется проверить обработку крайних случаев и наличие соответствующих тестов.
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify handling of protected modules in `ProtectedModuleInfo`. # Test: Search for tests that cover `ProtectedModuleInfo`. rg --type java 'ProtectedModuleInfo'Length of output: 843
Script:
#!/bin/bash # Description: Verify handling of protected modules in `ProtectedModuleInfo`. # Test: Search for test files that cover `ProtectedModuleInfo`. rg --type java 'ProtectedModuleInfo' --glob '*Test.java'Length of output: 56
Script:
#!/bin/bash # Description: Verify handling of protected modules in `ProtectedModuleInfo`. # Test: Search for test methods that might indirectly test `ProtectedModuleInfo`. rg --type java 'ProtectedModuleInfo' --glob '*Test.java' -A 10Length of output: 62
src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/CommonTemplateConverter.java (1)
39-52: Отсутствуют тесты дляCommonTemplateConverter.Изменения в методе
unmarshalтребуют тестирования для проверки обработки крайних случаев и предотвращения возможных ошибок. Рекомендуется добавить соответствующие тесты дляCommonTemplateConverter.
- Отсутствуют тесты, покрывающие
CommonTemplateConverter.Analysis chain
Изменения в методе
unmarshalвыглядят правильными.Использование
ExtendXStreamдля чтения данных и установкиTemplateDataулучшает функциональность.Однако, рекомендуется проверить обработку крайних случаев и наличие соответствующих тестов.
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify handling of `unmarshal` method in `CommonTemplateConverter`. # Test: Search for tests that cover `CommonTemplateConverter`. rg --type java 'CommonTemplateConverter'Length of output: 199
Script:
#!/bin/bash # Description: Verify handling of `unmarshal` method in `CommonTemplateConverter`. # Test: Search for tests that cover `CommonTemplateConverter` in test directories. rg --type java 'CommonTemplateConverter' --glob 'src/test/**'Length of output: 61
Script:
#!/bin/bash # Description: Verify handling of `unmarshal` method in `CommonTemplateConverter`. # Test: Search for tests that cover `CommonTemplateConverter` in the entire repository. rg --type java 'CommonTemplateConverter'Length of output: 199
src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/Unmarshaller.java (1)
Line range hint
73-107: МетодreadNode.Метод
readNodeкорректно обрабатывает различные типы узлов и устанавливает значения в контексте. Однако, можно улучшить читаемость кода, добавив комментарии.// Проверка, если узел соответствует языковому узлу if (LANGUAGE_NODE.equals(name)) { fieldClass = Language.class; name = LANGUAGE_METHOD_NAME; } else { fieldClass = String.class; }Этот комментарий улучшит понимание кода.
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (104)
src/test/resources/fixtures/external/ТестоваяВнешняяОбработка.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/external/ТестоваяВнешняяОбработка_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/external/ТестовыйВнешнийОтчет.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/external/ТестовыйВнешнийОтчет_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/AccountingRegisters.РегистрБухгалтерии1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/AccumulationRegisters.РегистрНакопления1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/BusinessProcesses.БизнесПроцесс1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/BusinessProcesses.БизнесПроцесс1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/CalculationRegisters.РегистрРасчета1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/CalculationRegisters.РегистрРасчета1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Catalogs.Справочник1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Catalogs.Справочник1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/ChartsOfAccounts.ПланСчетов1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/ChartsOfAccounts.ПланСчетов1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/ChartsOfCalculationTypes.ПланВидовРасчета1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/ChartsOfCharacteristicTypes.ПланВидовХарактеристик1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/ChartsOfCharacteristicTypes.ПланВидовХарактеристик1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/CommandGroups.ГруппаКоманд1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/CommonAttributes.ОбщийРеквизит1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/CommonCommands.ОбщаяКоманда1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/CommonCommands.ОбщаяКоманда1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/CommonForms.Форма.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/CommonForms.Форма_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/CommonPictures.ОбщаяКартинка1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Configuration.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Configuration_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Constants.Константа1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Constants.Константа1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/DataProcessors.Обработка1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/DataProcessors.Обработка1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/DefinedTypes.ОпределяемыйТип1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/DocumentJournals.ЖурналДокументов1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/DocumentJournals.ЖурналДокументов1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/DocumentNumerators.НумераторДокументов1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Documents.Документ1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Documents.Документ1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Enums.Перечисление1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Enums.Перечисление1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/EventSubscriptions.ПодпискаНаСобытие1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/ExchangePlans.ПланОбмена1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/ExchangePlans.ПланОбмена1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/ExternalDataSources.ТекущаяСУБД.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/ExternalDataSources.ТекущаяСУБД_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/FilterCriteria.КритерийОтбора1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/FilterCriteria.КритерийОтбора1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/FunctionalOptions.ФункциональнаяОпция1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/HTTPServices.HTTPСервис1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/HTTPServices.HTTPСервис1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/InformationRegisters.РегистрСведений1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/InformationRegisters.РегистрСведений1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Interfaces.Интерфейс1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Reports.Отчет1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Reports.Отчет1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Roles.Роль1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/ScheduledJobs.РегламентноеЗадание1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Sequences.Последовательность1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Sequences.Последовательность1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/SessionParameters.ПараметрСеанса1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/StyleItems.ЭлементСтиля1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Subsystems.ПерваяПодсистема.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/Tasks.Задача1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/WebServices.WebСервис1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/WebServices.WebСервис1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses/XDTOPackages.ПакетXDTO1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses_3_18/Bots.Бот1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses_3_18/Bots.Бот1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses_3_18/Configuration.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses_3_18/Configuration_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses_3_18/IntegrationServices.СервисИнтеграции1.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses_3_18/IntegrationServices.СервисИнтеграции1_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses_3_24/Configuration_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses_ext/Configuration.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses_ext/Configuration_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/mdclasses_unknown/Configuration_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/BusinessProcesses.Задание.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/BusinessProcesses.Задание_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Catalogs.Заметки.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Catalogs.Заметки_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/ChartsOfCharacteristicTypes.ДополнительныеРеквизитыИСведения.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/ChartsOfCharacteristicTypes.ДополнительныеРеквизитыИСведения_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/CommonForms.Вопрос.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/CommonForms.Вопрос_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Constants.ЗаголовокСистемы.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/DataProcessors.ЗагрузкаКурсовВалют.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/DataProcessors.ЗагрузкаКурсовВалют_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/DocumentJournals.Взаимодействия.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/DocumentJournals.Взаимодействия_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Documents.Анкета.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Documents.Анкета_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Enums.СтатусыОбработчиковОбновления.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Enums.СтатусыОбработчиковОбновления_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/ExchangePlans.ОбновлениеИнформационнойБазы.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/ExchangePlans.ОбновлениеИнформационнойБазы_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/FilterCriteria.ФайлыВТоме.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/FilterCriteria.ФайлыВТоме_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/InformationRegisters.ЭлектронныеПодписи.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/InformationRegisters.ЭлектронныеПодписи_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Reports.АнализВерсийОбъектов.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Reports.АнализВерсийОбъектов_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Roles.БазовыеПраваБСП.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/SettingsStorages.ХранилищеВариантовОтчетов.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/SettingsStorages.ХранилищеВариантовОтчетов_edt.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Tasks.ЗадачаИсполнителя.jsonis excluded by!**/*.jsonsrc/test/resources/fixtures/ssl_3_1/Tasks.ЗадачаИсполнителя_edt.jsonis excluded by!**/*.json
Files selected for processing (48)
- build.gradle.kts (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdclasses/CF.java (3 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdclasses/Configuration.java (3 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationExtension.java (3 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdclasses/helpers/Rights.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/CommonForm.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/children/ObjectForm.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/storage/EmptyFormData.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/storage/EmptyTemplateData.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/storage/FormData.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/storage/ManagedFormData.java (2 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/form/FormDataPath.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/storage/form/FormElementType.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/storage/form/FormHandler.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/storage/form/FormItem.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/storage/form/SimpleFormItem.java (3 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/support/DataSetType.java (3 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/support/Handler.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/support/MultiLanguageString.java (3 hunks)
- src/main/java/com/github/_1c_syntax/bsl/mdo/utils/LazyLoader.java (5 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/FakeReader.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/common/TransformationUtils.java (4 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java (3 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/MDReaderContext.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/DataCompositionSchemaConverter.java (1 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/ProtectedModuleInfo.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/RoleDataConverter.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/XdtoPackageDataConverter.java (4 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendXStream.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/FormElementConverter.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MdoReferenceConverter.java (3 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/Unmarshaller.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/CommonTemplateConverter.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ExternalDataSourceTableConverter.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/FormDataPathConverter.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/FormHandlerConverter.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/FormItemConverter.java (1 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ManagedFormDataConverter.java (2 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ObjectTemplateConverter.java (3 hunks)
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/Unmarshaller.java (3 hunks)
- src/test/java/com/github/_1c_syntax/bsl/mdo/DocumentTest.java (2 hunks)
- src/test/java/com/github/_1c_syntax/bsl/mdo/RoleTest.java (2 hunks)
- src/test/java/com/github/_1c_syntax/bsl/test_utils/MDTestUtils.java (2 hunks)
Files skipped from review due to trivial changes (10)
- build.gradle.kts
- src/main/java/com/github/_1c_syntax/bsl/mdo/CommonForm.java
- src/main/java/com/github/_1c_syntax/bsl/mdo/children/ObjectForm.java
- src/main/java/com/github/_1c_syntax/bsl/mdo/support/Handler.java
- src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java
- src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/DataCompositionSchemaConverter.java
- src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/Unmarshaller.java
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java
- src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/FormHandlerConverter.java
- src/test/java/com/github/_1c_syntax/bsl/mdo/DocumentTest.java
Additional comments not posted (99)
src/main/java/com/github/_1c_syntax/bsl/mdo/storage/form/FormDataPath.java (2)
34-34: Отличная реализация константы.Добавление статического финального поля
EMPTYдля представления пустогоFormDataPathсоответствует лучшим практикам.
39-41: МетодisEmpty()добавлен правильно.Новый метод
isEmpty()корректно реализован и улучшает удобство использования классаFormDataPath.src/main/java/com/github/_1c_syntax/bsl/mdo/storage/EmptyTemplateData.java (2)
27-31: Корректное использование final и приватного конструктора.Изменение класса на
finalи добавление приватного конструктора соответствуют лучшим практикам для создания синглтонов.
Line range hint
32-38:
Оптимизация методаgetEmpty().Метод
getEmpty()теперь возвращает экземплярEMPTY, что соответствует паттерну синглтон и улучшает производительность.src/main/java/com/github/_1c_syntax/bsl/mdo/storage/form/FormItem.java (1)
35-35: Улучшение типизации и удаление реализации по умолчанию.Изменение возвращаемого типа метода
getType()наFormElementTypeулучшает безопасность типов. Удаление реализации по умолчанию дляgetPlainItems()требует, чтобы подклассы предоставляли собственную реализацию.Also applies to: 65-65
src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/FormDataPathConverter.java (1)
37-41: Корректное использованиеFormDataPathв методеunmarshal.Метод
unmarshalтеперь правильно используетFormDataPathдля создания нового экземпляра с значением из ридера.src/main/java/com/github/_1c_syntax/bsl/mdo/storage/FormData.java (6)
38-40: Метод isEmpty выглядит правильно.Метод эффективно проверяет, является ли текущий экземпляр синглтоном
EmptyFormData.EMPTY.
45-45: Метод getTitle выглядит правильно.Метод декларации для получения заголовка формы.
50-50: Метод getHandlers выглядит правильно.Метод декларации для получения обработчиков событий формы.
55-55: Метод getItems выглядит правильно.Метод декларации для получения визуальных элементов формы первого уровня.
60-60: Метод getPlainItems выглядит правильно.Метод декларации для получения всех визуальных элементов формы.
65-65: Метод getAttributes выглядит правильно.Метод декларации для получения реквизитов формы.
src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ManagedFormDataConverter.java (2)
Line range hint
37-42:
Метод unmarshal выглядит правильно.Метод корректно использует
FormElementReaderContextиUnmarshallerдля обработки данных.
44-47: Метод canConvert выглядит правильно.Метод корректно проверяет тип на соответствие
ManagedFormDataиFormAttribute.src/main/java/com/github/_1c_syntax/bsl/mdo/storage/form/SimpleFormItem.java (4)
41-41: Поле type выглядит правильно.Поле корректно инициализируется значением по умолчанию
FormElementType.UNKNOWN.
53-53: Поле plainItems выглядит правильно.Поле корректно инициализируется с использованием ленивого загрузчика.
56-58: Метод getPlainItems выглядит правильно.Метод корректно использует механизм ленивой загрузки.
60-62: Метод computePlainItems выглядит правильно.Метод корректно использует
LazyLoaderдля вычисления плоских элементов.src/main/java/com/github/_1c_syntax/bsl/mdo/support/DataSetType.java (3)
45-46: Поле KEYS выглядит правильно.Поле корректно инициализируется с использованием метода
computeKeys.
56-58: Метод fromString выглядит правильно.Метод корректно использует карту
KEYSдля выполнения преобразования.
60-65: Метод computeKeys выглядит правильно.Метод корректно перебирает значения перечисления и заполняет карту.
src/main/java/com/github/_1c_syntax/bsl/mdo/storage/ManagedFormData.java (4)
28-29: Добавление необходимых импортов.Добавлены импорты для
LazyLoaderиLazy. Это необходимо для реализации ленивой загрузки plain items.
52-52: Инициализация Lazy переменной.Инициализация переменной
plainItemsс использованием ленивой загрузки. Это улучшает производительность, загружая данные только при необходимости.
55-57: Метод для получения plain items.Метод
getPlainItemsиспользует ленивую загрузку для получения plain items. Это улучшает производительность, загружая данные только при необходимости.
59-60: Метод для вычисления plain items.Метод
computePlainItemsиспользуетLazyLoaderдля вычисления plain items. Это улучшает производительность и упрощает код.src/main/java/com/github/_1c_syntax/bsl/mdo/storage/EmptyFormData.java (8)
24-27: Добавление необходимых импортов.Добавлены импорты для
FormAttribute,FormHandler,FormItemиMultiLanguageString. Это необходимо для реализации методов интерфейсаFormData.
40-40: Добавление константы EMPTY.Константа
EMPTYзаменяет методgetEmpty(). Это улучшает производительность и упрощает доступ к пустому содержимому формы.
42-43: Приватный конструктор.Приватный конструктор предотвращает создание экземпляров класса извне. Это улучшает инкапсуляцию и безопасность.
45-48: Метод для получения заголовка.Метод
getTitleвозвращает пустойMultiLanguageString. Это соответствует ожиданиям для пустого содержимого формы.
50-53: Метод для получения обработчиков формы.Метод
getHandlersвозвращает пустой список. Это соответствует ожиданиям для пустого содержимого формы.
55-58: Метод для получения элементов формы.Метод
getItemsвозвращает пустой список. Это соответствует ожиданиям для пустого содержимого формы.
60-62: Метод для получения plain items.Метод
getPlainItemsвозвращает пустой список. Это соответствует ожиданиям для пустого содержимого формы.
66-67: Метод для получения атрибутов формы.Метод
getAttributesвозвращает пустой список. Это соответствует ожиданиям для пустого содержимого формы.src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/FormItemConverter.java (4)
24-26: Добавление необходимых импортов.Добавлены импорты для
FormElementType,FormItem,FormElementReaderContext, иReadConverter. Это необходимо для реализации конвертора данных формы.
34-35: Аннотация EDTConverter.Аннотация
@EDTConverterуказывает, что данный класс является конвертором данных в формате ЕДТ. Это улучшает читаемость и поддержку кода.
37-45: Метод unmarshal для конвертации данных.Метод
unmarshalвыполняет чтение данных изHierarchicalStreamReaderи преобразует их в объектFormElementReaderContext. Если тип элемента формы не задан, он устанавливается на основе атрибутаtype. Это улучшает поддержку различных типов элементов формы.
48-51: Метод canConvert для проверки типа.Метод
canConvertпроверяет, может ли данный конвертор обрабатывать указанный тип. Это улучшает гибкость и расширяемость конвертора.src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ObjectTemplateConverter.java (5)
Line range hint
24-28:
Добавление необходимых импортов.Добавлены импорты для
ObjectTemplate,EmptyTemplateData,TemplateData,AbstractReadConverter,ExtendXStream,MDOType,UnmarshallingContext, иHierarchicalStreamReader. Это необходимо для реализации конвертора шаблонов объектов.
36-36: Аннотация EDTConverter.Аннотация
@EDTConverterуказывает, что данный класс является конвертором данных в формате ЕДТ. Это улучшает читаемость и поддержку кода.
45-52: Метод unmarshal для конвертации данных.Метод
unmarshalвыполняет чтение данных изHierarchicalStreamReaderи преобразует их в объектTemplateData. Если данные являются экземпляромTemplateData, они устанавливаются в контексте чтения. Это улучшает поддержку различных типов данных шаблонов.
57-57: Метод canConvert для проверки типа.Метод
canConvertпроверяет, может ли данный конвертор обрабатывать указанный тип. Это улучшает гибкость и расширяемость конвертора.
60-61: Метод dataPath для вычисления пути данных.Метод
dataPathвычисляет путь к данным шаблона на основе текущего пути и имени. Это улучшает поддержку различных путей данных.src/main/java/com/github/_1c_syntax/bsl/mdo/storage/form/FormHandler.java (1)
71-75: Изменение логики сравнения в методеcompareToвыглядит правильным.Теперь метод сначала сравнивает
event, а затемname, что улучшает порядок сортировки.src/main/java/com/github/_1c_syntax/bsl/mdo/storage/RoleData.java (1)
77-77: Изменение типа поляnameвObjectRightнаMdoReferenceвыглядит правильным.Это улучшает типизацию и функциональность.
Однако, рекомендуется проверить все места использования
ObjectRightдля соответствия новому типу.src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/CommonTemplateConverter.java (1)
59-61: МетодdataPathвыглядит правильным.Метод корректно вычисляет путь для
Template.dcs.src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ExternalDataSourceTableConverter.java (3)
33-33: Добавлен импорт дляPattern.Импорт
Patternнеобходим для использования регулярных выражений в коде. Изменение выглядит корректным.
42-42: Добавлен паттерн для разбивки строк.Паттерн
SPLITTER_PATTERNиспользуется для разбивки строки по точке. Это улучшает читаемость и повторное использование.
48-48: Использование паттерна для разбивки строки вunmarshalметоде.Использование
SPLITTER_PATTERNдля разбивки значения и получениеchildNameулучшает читаемость и поддержку кода.src/test/java/com/github/_1c_syntax/bsl/mdo/RoleTest.java (3)
60-60: Добавлена проверка имени и прав для конфигурации.Проверяется, что имя конфигурации и количество прав соответствуют ожидаемым значениям. Изменение выглядит корректным.
64-64: Добавлена проверка имени и прав для документа.Проверяется, что имя документа и количество прав соответствуют ожидаемым значениям. Изменение выглядит корректным.
68-68: Добавлена проверка имени и прав для справочника.Проверяется, что имя справочника и количество прав соответствуют ожидаемым значениям. Изменение выглядит корректным.
src/main/java/com/github/_1c_syntax/bsl/reader/common/context/FormElementReaderContext.java (5)
26-26: Добавлен импорт дляFormElementType.Импорт
FormElementTypeнеобходим для использования этого типа в классе. Изменение выглядит корректным.
32-34: Добавлены аннотации Lombok для полей.Аннотации
@Getterи@Setterавтоматически генерируют методы доступа для поляelementType, что улучшает читаемость и поддержку кода.
56-59: Добавлено полеelementTypeс аннотациями@Setterи@Getter.Поле
elementTypeиспользуется для хранения типа элемента формы. Изменение улучшает функциональность класса.
63-63: Использование картыCLASSESдля определения реального класса.Использование карты
CLASSESдля определения реального класса улучшает читаемость и поддержку кода.
69-71: Улучшение методаfieldTypeдля определения типа поля.Метод
fieldTypeтеперь проверяет наличие поля в картеCLASSESи использует суперметод, если поле не найдено. Это улучшает гибкость и поддержку кода.src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/FormElementConverter.java (2)
25-25: Добавлен импорт дляFormElementType.Импорт
FormElementTypeнеобходим для использования этого типа в классе. Изменение выглядит корректным.
57-57: Установка типа элемента вreaderContext.Установка значения типа элемента с использованием
FormElementType.fromStringулучшает читаемость и поддержку кода.src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MdoReferenceConverter.java (1)
Line range hint
44-49:
Проверьте логику обработки значения.В методе
unmarshalзначениеvalueустанавливается в пустую строку, если дочерние элементы отсутствуют. Возможно, стоит добавить логирование для отладки или дополнительных проверок.src/main/java/com/github/_1c_syntax/bsl/reader/FakeReader.java (1)
93-93: Изменение инициализации наEmptyFormData.EMPTY.Изменение инициализации на
EmptyFormData.EMPTYвместо использования методаgetEmpty()улучшает производительность и читабельность.src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/DataSetConverter.java (1)
49-49: Изменение типа данных.Изменение типа данных в методе
unmarshalдляdataSet.typeулучшает читабельность и упрощает поддержку кода.src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/RoleDataConverter.java (2)
Line range hint
48-55:
Использование методаequals.Изменение вызова метода
equalsна проверку константы повышает читаемость и снижает вероятность ошибок.
68-71: Использование методаequals.Изменение вызова метода
equalsна проверку константы повышает читаемость и снижает вероятность ошибок.src/main/java/com/github/_1c_syntax/bsl/mdo/storage/form/FormElementType.java (5)
1-21: Лицензионное уведомление и информация о файле.Этот сегмент содержит лицензионное уведомление и информацию о файле. Здесь нет изменений кода, требующих обзора.
24-37: Импорт и объявление класса.Импорты и объявление класса выглядят корректно. Использование
lombokдля автоматического создания методов-геттеров и других функций улучшает читаемость кода.
38-83: Объявление констант перечисления.Константы перечисления объявлены корректно. Использование конструктора и метода
isUnknownдля типаUNKNOWNвыглядит логичным.
85-85: Инициализация статической карты KEYS.Инициализация статической карты KEYS с вызовом метода
computeKeysвыглядит корректно.
105-111: МетодcomputeKeys.Метод
computeKeysкорректно создает неизменяемую карту из значений перечисления. ИспользованиеCollections.unmodifiableMapповышает безопасность кода.src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java (2)
Line range hint
1-90: Лицензионное уведомление и информация о файле. Импорт и объявление класса.Этот сегмент содержит лицензионное уведомление, информацию о файле, импорты и объявление класса. Здесь нет изменений кода, требующих обзора.
141-150: МетодsetValueChildren.Метод
setValueChildrenкорректно обрабатывает дочерние контексты и устанавливает значения для них. Использование потоков и параллельных стримов повышает производительность.src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/Unmarshaller.java (3)
Line range hint
1-72: Лицензионное уведомление и информация о файле. Импорт и объявление класса.Этот сегмент содержит лицензионное уведомление, информацию о файле, импорты и объявление класса. Здесь нет изменений кода, требующих обзора.
115-118: МетодtransformMultiLanguageString.Метод
transformMultiLanguageStringкорректно объединяет значения многоязычных строк. Код выглядит корректно и не требует изменений.
126-129: МетодsaveExtra.Метод
saveExtraкорректно сохраняет дополнительные значения в контексте. Код выглядит корректно и не требует изменений.src/main/java/com/github/_1c_syntax/bsl/mdclasses/CF.java (5)
Line range hint
1-93: Лицензионное уведомление и информация о файле. Импорт и объявление интерфейса.Этот сегмент содержит лицензионное уведомление, информацию о файле, импорты и объявление интерфейса. Здесь нет изменений кода, требующих обзора.
94-98: МетодgetCommonModulesByName.Метод
getCommonModulesByNameдобавлен корректно. Он возвращает карту общих модулей по имени.
100-103: МетодgetChildrenByMdoRef.Метод
getChildrenByMdoRefдобавлен корректно. Он возвращает карту дочерних объектов по ссылке.
174-176: МетодfindChildпо ссылке.Метод
findChildмодифицирован корректно. Он теперь использует методgetChildrenByMdoRefдля поиска дочернего объекта по ссылке.
179-181: МетодfindCommonModuleпо имени.Метод
findCommonModuleмодифицирован корректно. Он теперь использует методgetCommonModulesByNameдля поиска общего модуля по имени.src/main/java/com/github/_1c_syntax/bsl/reader/common/TransformationUtils.java (3)
89-92: Проверьте корректность использованияcomputeFieldType.Метод
fieldTypeправильно используетConcurrentSkipListMapдля кэширования типов и вызываетcomputeFieldType, если тип не закэширован. Убедитесь, чтоcomputeFieldTypeреализован корректно.
136-141: Проверьте корректность фильтрации методов.Метод
getMethodправильно используетConcurrentSkipListMapдля кэширования методов и фильтрует методы по имени. Убедитесь, что логика фильтрации методов корректна.
143-157: Проверьте корректность обработки типов вcomputeFieldType.Метод
computeFieldTypeкорректно обрабатывает различные сценарии типов, включая параметризованные и wildcard типы. Убедитесь, что метод возвращает правильный тип.src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/XdtoPackageDataConverter.java (3)
67-73: Проверьте корректность использования switch с лямбда-синтаксисом.Метод
unmarshalкорректно использует switch с лямбда-синтаксисом для обработки различных имен узлов. Убедитесь, что все случаи правильно обработаны и паттерн builder используется эффективно.
97-99: Проверьте корректность чтения атрибутов и узлов вreadValueType.Метод
readValueTypeкорректно создает объектValueTypeиз данных XDTO. Убедитесь, что метод правильно читает атрибуты и обрабатывает узлы перечислений.
114-116: Проверьте корректность чтения атрибутов и определения типов вreadProperty.Метод
readPropertyкорректно создает объектPropertyиз данных XDTO. Убедитесь, что метод правильно читает атрибуты и обрабатывает определения типов.src/main/java/com/github/_1c_syntax/bsl/mdo/support/MultiLanguageString.java (2)
48-57: Проверьте корректность реализации константыEMPTYи конструктора.Константа
EMPTYи конструктор правильно инициализируют содержимое пустым набором.
190-192: Проверьте корректность реализации классаEntry.Класс
Entryобъявлен какfinalи правильно реализует методы для создания и сравнения записей.src/main/java/com/github/_1c_syntax/bsl/mdclasses/helpers/Rights.java (2)
147-147: Проверьте корректность фильтрации прав в методеrightAccess.Метод
rightAccessправильно фильтрует и проверяет права. Убедитесь, что логика фильтрации корректна.
161-161: Проверьте корректность фильтрации ролей в методеrolesAccess.Метод
rolesAccessправильно фильтрует и собирает роли. Убедитесь, что логика фильтрации корректна.src/test/java/com/github/_1c_syntax/bsl/test_utils/MDTestUtils.java (1)
110-112: Проверьте покрытие тестами новых полей.Изменения одобрены. Добавлены новые строки для исключения полей
plainItems,commonModulesByNameиchildrenByMdoRefпри сериализации в JSON. Убедитесь, что новые поля покрыты тестами.src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java (1)
151-151: Проверьте покрытие тестами нового случая.Изменения одобрены. Добавлено новое условие для возврата
EmptyFormData.EMPTY, если файл данных формы не существует. Убедитесь, что этот случай покрыт тестами.src/main/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationExtension.java (2)
251-252: Изменения одобрены: Добавлены ленивые поля.Новые ленивые поля
commonModulesByNameиchildrenByMdoRefдобавлены для улучшения производительности.
295-303: Изменения одобрены: Добавлены новые методы.Новые методы
getCommonModulesByNameиgetChildrenByMdoRefдобавлены для доступа к ленивым полям.src/main/java/com/github/_1c_syntax/bsl/mdo/utils/LazyLoader.java (3)
210-211: Изменения одобрены: Добавлен методcomputeModulesByType.Метод создает соответствие URI модуля к его типу, используя поток для сбора данных в немодифицируемую карту.
242-245: Изменения одобрены: Добавлен методcomputeChildrenByMdoRef.Метод создает соответствие ссылки довернего объекта к нему самому, используя поток для сбора данных в немодифицируемую карту.
256-258: Изменения одобрены: Добавлен методcomputeModulesByURI.Метод создает соответствие URI модуля к самому модулю, используя поток для сбора данных в немодифицируемую карту.
src/main/java/com/github/_1c_syntax/bsl/mdclasses/Configuration.java (3)
260-260: Одобрено: Правильное использование ленивой загрузкиИспользование ленивой загрузки для
commonModulesByNameкорректно.
261-261: Одобрено: Правильное использование ленивой загрузкиИспользование ленивой загрузки для
childrenByMdoRefкорректно.
350-359: Одобрено: Корректная реализация методов доступаМетоды
getCommonModulesByNameиgetChildrenByMdoRefкорректно используют ленивую загрузку для эффективного получения данных.src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendXStream.java (1)
269-269: Одобрено: Регистрация конвертера для FormElementTypeРегистрация конвертера для
FormElementTypeв методеsetupConvertersобеспечивает правильную обработку перечисления при сериализации и десериализации.
|



Описание
Связанные задачи
Closes
Чеклист
Общие
gradlew precommit)Дополнительно