diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 73f0f87bbb..bc6315958b 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -8,6 +8,7 @@ === Architectural decision records +- [ADR-111] Provide only valid view descriptions to the renderer === Breaking changes diff --git a/doc/adrs/111_provide_only_valid_view_descriptions_to_the_renderer.adoc b/doc/adrs/111_provide_only_valid_view_descriptions_to_the_renderer.adoc new file mode 100644 index 0000000000..3fcb605422 --- /dev/null +++ b/doc/adrs/111_provide_only_valid_view_descriptions_to_the_renderer.adoc @@ -0,0 +1,38 @@ += ADR-111 - 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 +