From 6852d2f1f274495979824cac7230ea5bffdc9b33 Mon Sep 17 00:00:00 2001 From: Michael Charfadi Date: Tue, 3 Oct 2023 14:21:56 +0200 Subject: [PATCH] [doc] Contribute an ADR to avoid issues with invalid view decriptions elements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: https://github.com/eclipse-sirius/sirius-web/issues/2444 Signed-off-by: Michaƫl Charfadi --- CHANGELOG.adoc | 1 + ...lid_view_descriptions_to_the_renderer.adoc | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 doc/adrs/112_provide_only_valid_view_descriptions_to_the_renderer.adoc diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 7aacf93286..9f378261d5 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -10,6 +10,7 @@ === Architectural decision records - [ADR-111] Add support for image overlay +- [ADR-112] Provide only valid view descriptions to the renderer === Breaking changes diff --git a/doc/adrs/112_provide_only_valid_view_descriptions_to_the_renderer.adoc b/doc/adrs/112_provide_only_valid_view_descriptions_to_the_renderer.adoc new file mode 100644 index 0000000000..d9b8043ead --- /dev/null +++ b/doc/adrs/112_provide_only_valid_view_descriptions_to_the_renderer.adoc @@ -0,0 +1,38 @@ += ADR-112 - Provide only valid view descriptions to the renderer + +== Context + +Some rendered components can have an invalid description. +For example a reference widget component without a valid `Reference Name Expression`. + +This can provoke unexpected results. +We want to avoid converting view dsl elements to programmatic elements if they have an invalid description. + +== Decision + +Only the `sirius-components-view-emf` package will be impacted. + +The class `ViewFormDescriptionConverterSwitch.java` will extends extends `FormSwitch>` instead of `FormSwitch`. + +`IWidgetConverterProvider#getWidgetConverter` will change to: + +`Switch> getWidgetConverter(AQLInterpreter interpreter, IEditService editService, IObjectService objectService, IFeedbackMessageService feedbackMessageService)`; + +from: +`Switch getWidgetConverter(AQLInterpreter interpreter, IEditService editService, IObjectService objectService, IFeedbackMessageService feedbackMessageService)`; + +`ReferenceWidgetDescriptionConverterSwitch#caseReferenceWidgetDescription` will return an empty optional if the widget description is invalid. + + +We will also log all invalid descriptions. + +== Status + +draft + +== Consequences + +This will change currently used API that will need to be documented. + +== References +