Skip to content

Commit f8a73f2

Browse files
committed
[cleanup] Use ServiceMethod instead of getSelfServiceCallExpression
Signed-off-by: Axel RICHARD <axel.richard@obeo.fr>
1 parent ec82950 commit f8a73f2

16 files changed

Lines changed: 122 additions & 83 deletions

backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/configuration/SysMLv2PropertiesConfigurer.java

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,15 @@
1717
import java.util.Objects;
1818
import java.util.UUID;
1919

20+
import org.eclipse.acceleo.query.services.EObjectServices;
2021
import org.eclipse.emf.common.util.URI;
22+
import org.eclipse.emf.ecore.EAttribute;
23+
import org.eclipse.emf.ecore.EObject;
24+
import org.eclipse.emf.ecore.EStructuralFeature;
2125
import org.eclipse.emf.ecore.resource.Resource;
2226
import org.eclipse.emf.ecore.util.EcoreUtil;
2327
import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
28+
import org.eclipse.syson.sysml.Element;
2429
import org.eclipse.emf.edit.provider.ComposedAdapterFactory.Descriptor;
2530
import org.eclipse.sirius.components.collaborative.forms.services.api.IPropertiesDescriptionRegistry;
2631
import org.eclipse.sirius.components.collaborative.forms.services.api.IPropertiesDescriptionRegistryConfigurer;
@@ -60,7 +65,6 @@
6065
import org.eclipse.syson.model.services.aql.ModelQueryAQLService;
6166
import org.eclipse.syson.services.UtilService;
6267
import org.eclipse.syson.sysml.SysmlPackage;
63-
import org.eclipse.syson.sysml.helper.LabelConstants;
6468
import org.eclipse.syson.util.AQLConstants;
6569
import org.eclipse.syson.util.AQLUtils;
6670
import org.eclipse.syson.util.ServiceMethod;
@@ -140,7 +144,7 @@ public void addPropertiesDescriptions(IPropertiesDescriptionRegistry registry) {
140144
// The FormDescription must be part of View inside a proper EMF Resource to be correctly handled
141145
URI uri = URI.createURI(IEMFEditingContext.RESOURCE_SCHEME + ":///" + UUID.nameUUIDFromBytes(SysMLv2PropertiesConfigurer.class.getCanonicalName().getBytes()));
142146
Resource resource = new XMIResourceImpl(uri);
143-
View view = org.eclipse.sirius.components.view.ViewFactory.eINSTANCE.createView();
147+
View view = ViewFactory.eINSTANCE.createView();
144148

145149
view.eAllContents().forEachRemaining(eObject -> {
146150
eObject.eAdapters().add(new IDAdapter(UUID.nameUUIDFromBytes(EcoreUtil.getURI(eObject).toString().getBytes())));
@@ -263,8 +267,8 @@ private GroupDescription createExtraRedefinitionPropertiesGroup() {
263267
refWidget.setReferenceOwnerExpression(AQLConstants.AQL_SELF);
264268
refWidget.setIsEnabledExpression(AQL_NOT_SELF_IS_READ_ONLY);
265269
ChangeContext setRefWidget = ViewFactory.eINSTANCE.createChangeContext();
266-
setRefWidget.setExpression("aql:self.handleReferenceWidgetNewValue('" + SysmlPackage.eINSTANCE.getRedefinition_RedefinedFeature().getName() + "', " + ViewFormDescriptionConverter.NEW_VALUE
267-
+ LabelConstants.CLOSE_PARENTHESIS);
270+
setRefWidget.setExpression(ServiceMethod.of2(DetailsViewService::handleReferenceWidgetNewValue)
271+
.aqlSelf(AQLUtils.aqlString(SysmlPackage.eINSTANCE.getRedefinition_RedefinedFeature().getName()), ViewFormDescriptionConverter.NEW_VALUE));
268272
refWidget.getBody().add(setRefWidget);
269273

270274
group.getChildren().add(refWidget);
@@ -287,9 +291,8 @@ private GroupDescription createExtraReferenceSubsettingPropertiesGroup() {
287291
refWidget.setReferenceOwnerExpression(AQLConstants.AQL_SELF);
288292
refWidget.setIsEnabledExpression(AQL_NOT_SELF_IS_READ_ONLY);
289293
ChangeContext setRefWidget = ViewFactory.eINSTANCE.createChangeContext();
290-
setRefWidget
291-
.setExpression("aql:self.handleReferenceWidgetNewValue('" + SysmlPackage.eINSTANCE.getReferenceSubsetting_ReferencedFeature().getName() + "', " + ViewFormDescriptionConverter.NEW_VALUE
292-
+ LabelConstants.CLOSE_PARENTHESIS);
294+
setRefWidget.setExpression(ServiceMethod.of2(DetailsViewService::handleReferenceWidgetNewValue)
295+
.aqlSelf(AQLUtils.aqlString(SysmlPackage.eINSTANCE.getReferenceSubsetting_ReferencedFeature().getName()), ViewFormDescriptionConverter.NEW_VALUE));
293296
refWidget.getBody().add(setRefWidget);
294297

295298
group.getChildren().add(refWidget);
@@ -307,14 +310,15 @@ private GroupDescription createExtraStatesubactionMembershipKindPropertiesGroup(
307310
RadioDescription radio = FormFactory.eINSTANCE.createRadioDescription();
308311
radio.setName("ExtraRadioKindWidget");
309312
radio.setLabelExpression("Kind");
310-
radio.setCandidatesExpression(AQLUtils.getSelfServiceCallExpression("getEnumCandidates", AQLUtils.aqlString(SysmlPackage.eINSTANCE.getStateSubactionMembership_Kind().getName())));
313+
radio.setCandidatesExpression(ServiceMethod.of1(DetailsViewService.class, DetailsViewService::getEnumCandidates, Element.class, String.class)
314+
.aqlSelf(AQLUtils.aqlString(SysmlPackage.eINSTANCE.getStateSubactionMembership_Kind().getName())));
311315
radio.setCandidateLabelExpression("aql:candidate.name");
312-
radio.setValueExpression(AQLUtils.getSelfServiceCallExpression("getEnumValue", AQLUtils.aqlString(SysmlPackage.eINSTANCE.getStateSubactionMembership_Kind().getName())));
316+
radio.setValueExpression(ServiceMethod.of1(DetailsViewService.class, DetailsViewService::getEnumValue, Element.class, String.class)
317+
.aqlSelf(AQLUtils.aqlString(SysmlPackage.eINSTANCE.getStateSubactionMembership_Kind().getName())));
313318
radio.setIsEnabledExpression(AQL_NOT_SELF_IS_READ_ONLY);
314319
ChangeContext setNewValueOperation = ViewFactory.eINSTANCE.createChangeContext();
315-
setNewValueOperation
316-
.setExpression(
317-
AQLUtils.getSelfServiceCallExpression("setNewValue", List.of(AQLUtils.aqlString(SysmlPackage.eINSTANCE.getStateSubactionMembership_Kind().getName()), "newValue.instance")));
320+
setNewValueOperation.setExpression(ServiceMethod.of2(DetailsViewService.class, DetailsViewService::setNewValue, Element.class, String.class, Object.class)
321+
.aqlSelf(AQLUtils.aqlString(SysmlPackage.eINSTANCE.getStateSubactionMembership_Kind().getName()), "newValue.instance"));
318322
radio.getBody().add(setNewValueOperation);
319323

320324
group.getChildren().add(radio);
@@ -337,8 +341,8 @@ private GroupDescription createExtraSubclassificationPropertiesGroup() {
337341
refWidget.setReferenceOwnerExpression(AQLConstants.AQL_SELF);
338342
refWidget.setIsEnabledExpression(AQL_NOT_SELF_IS_READ_ONLY);
339343
ChangeContext setRefWidget = ViewFactory.eINSTANCE.createChangeContext();
340-
setRefWidget.setExpression("aql:self.handleReferenceWidgetNewValue('" + SysmlPackage.eINSTANCE.getSubclassification_Superclassifier().getName() + "', " + ViewFormDescriptionConverter.NEW_VALUE
341-
+ LabelConstants.CLOSE_PARENTHESIS);
344+
setRefWidget.setExpression(ServiceMethod.of2(DetailsViewService::handleReferenceWidgetNewValue)
345+
.aqlSelf(AQLUtils.aqlString(SysmlPackage.eINSTANCE.getSubclassification_Superclassifier().getName()), ViewFormDescriptionConverter.NEW_VALUE));
342346
refWidget.getBody().add(setRefWidget);
343347

344348
group.getChildren().add(refWidget);
@@ -361,8 +365,8 @@ private GroupDescription createExtraSubsettingPropertiesGroup() {
361365
refWidget.setReferenceOwnerExpression(AQLConstants.AQL_SELF);
362366
refWidget.setIsEnabledExpression(AQL_NOT_SELF_IS_READ_ONLY);
363367
ChangeContext setRefWidget = ViewFactory.eINSTANCE.createChangeContext();
364-
setRefWidget.setExpression("aql:self.handleReferenceWidgetNewValue('" + SysmlPackage.eINSTANCE.getSubsetting_SubsettedFeature().getName() + "', " + ViewFormDescriptionConverter.NEW_VALUE
365-
+ LabelConstants.CLOSE_PARENTHESIS);
368+
setRefWidget.setExpression(ServiceMethod.of2(DetailsViewService::handleReferenceWidgetNewValue)
369+
.aqlSelf(AQLUtils.aqlString(SysmlPackage.eINSTANCE.getSubsetting_SubsettedFeature().getName()), ViewFormDescriptionConverter.NEW_VALUE));
366370
refWidget.getBody().add(setRefWidget);
367371

368372
group.getChildren().add(refWidget);
@@ -580,7 +584,7 @@ private WidgetDescription createLabelWidget() {
580584
label.setName("LabelWidget");
581585
label.setLabelExpression(ServiceMethod.of1(DetailsViewService::getDetailsViewLabel).aqlSelf(E_STRUCTURAL_FEATURE));
582586
label.setHelpExpression(ServiceMethod.of1(DetailsViewService::getDetailsViewHelpText).aqlSelf(E_STRUCTURAL_FEATURE));
583-
label.setValueExpression(AQLUtils.getSelfServiceCallExpression("eGet", E_STRUCTURAL_FEATURE));
587+
label.setValueExpression(ServiceMethod.of1(EObjectServices.class, EObjectServices::eGet, EObject.class, EStructuralFeature.class).aqlSelf(E_STRUCTURAL_FEATURE));
584588
return label;
585589
}
586590

@@ -589,10 +593,11 @@ private WidgetDescription createTextAreaFieldWidget() {
589593
textArea.setName("TextAreaWidget");
590594
textArea.setLabelExpression(ServiceMethod.of1(DetailsViewService::getDetailsViewLabel).aqlSelf(E_STRUCTURAL_FEATURE));
591595
textArea.setHelpExpression(ServiceMethod.of1(DetailsViewService::getDetailsViewHelpText).aqlSelf(E_STRUCTURAL_FEATURE));
592-
textArea.setValueExpression(AQLUtils.getSelfServiceCallExpression("eGet", E_STRUCTURAL_FEATURE));
596+
textArea.setValueExpression(ServiceMethod.of1(EObjectServices.class, EObjectServices::eGet, EObject.class, EStructuralFeature.class).aqlSelf(E_STRUCTURAL_FEATURE));
593597
textArea.setIsEnabledExpression(AQL_NOT_SELF_IS_READ_ONLY_E_STRUCTURAL_FEATURE);
594598
ChangeContext setNewValueOperation = ViewFactory.eINSTANCE.createChangeContext();
595-
setNewValueOperation.setExpression(AQLUtils.getSelfServiceCallExpression("setNewValue", List.of(E_STRUCTURAL_FEATURE, ViewFormDescriptionConverter.NEW_VALUE)));
599+
setNewValueOperation.setExpression(ServiceMethod.of2(DetailsViewService.class, DetailsViewService::setNewValue, Element.class, EStructuralFeature.class, Object.class)
600+
.aqlSelf(E_STRUCTURAL_FEATURE, ViewFormDescriptionConverter.NEW_VALUE));
596601
textArea.getBody().add(setNewValueOperation);
597602
return textArea;
598603
}
@@ -602,10 +607,11 @@ private WidgetDescription createTextfieldWidget() {
602607
textfield.setName("TextfieldWidget");
603608
textfield.setLabelExpression(ServiceMethod.of1(DetailsViewService::getDetailsViewLabel).aqlSelf(E_STRUCTURAL_FEATURE));
604609
textfield.setHelpExpression(ServiceMethod.of1(DetailsViewService::getDetailsViewHelpText).aqlSelf(E_STRUCTURAL_FEATURE));
605-
textfield.setValueExpression(AQLUtils.getSelfServiceCallExpression("eGet", E_STRUCTURAL_FEATURE));
610+
textfield.setValueExpression(ServiceMethod.of1(EObjectServices.class, EObjectServices::eGet, EObject.class, EStructuralFeature.class).aqlSelf(E_STRUCTURAL_FEATURE));
606611
textfield.setIsEnabledExpression(AQL_NOT_SELF_IS_READ_ONLY_E_STRUCTURAL_FEATURE);
607612
ChangeContext setNewValueOperation = ViewFactory.eINSTANCE.createChangeContext();
608-
setNewValueOperation.setExpression(AQLUtils.getSelfServiceCallExpression("setNewValue", List.of(E_STRUCTURAL_FEATURE, ViewFormDescriptionConverter.NEW_VALUE)));
613+
setNewValueOperation.setExpression(ServiceMethod.of2(DetailsViewService.class, DetailsViewService::setNewValue, Element.class, EStructuralFeature.class, Object.class)
614+
.aqlSelf(E_STRUCTURAL_FEATURE, ViewFormDescriptionConverter.NEW_VALUE));
609615
textfield.getBody().add(setNewValueOperation);
610616
return textfield;
611617
}
@@ -614,11 +620,12 @@ private WidgetDescription createCheckboxWidget() {
614620
CheckboxDescription checkbox = FormFactory.eINSTANCE.createCheckboxDescription();
615621
checkbox.setName("CheckboxWidget");
616622
checkbox.setLabelExpression(ServiceMethod.of1(DetailsViewService::getDetailsViewLabel).aqlSelf(E_STRUCTURAL_FEATURE));
617-
checkbox.setValueExpression(AQLUtils.getSelfServiceCallExpression("eGet", E_STRUCTURAL_FEATURE));
623+
checkbox.setValueExpression(ServiceMethod.of1(EObjectServices.class, EObjectServices::eGet, EObject.class, EStructuralFeature.class).aqlSelf(E_STRUCTURAL_FEATURE));
618624
checkbox.setHelpExpression(ServiceMethod.of1(DetailsViewService::getDetailsViewHelpText).aqlSelf(E_STRUCTURAL_FEATURE));
619625
checkbox.setIsEnabledExpression(AQL_NOT_SELF_IS_READ_ONLY_E_STRUCTURAL_FEATURE);
620626
ChangeContext setNewValueOperation = ViewFactory.eINSTANCE.createChangeContext();
621-
setNewValueOperation.setExpression(AQLUtils.getSelfServiceCallExpression("setNewValue", List.of(E_STRUCTURAL_FEATURE, ViewFormDescriptionConverter.NEW_VALUE)));
627+
setNewValueOperation.setExpression(ServiceMethod.of2(DetailsViewService.class, DetailsViewService::setNewValue, Element.class, EStructuralFeature.class, Object.class)
628+
.aqlSelf(E_STRUCTURAL_FEATURE, ViewFormDescriptionConverter.NEW_VALUE));
622629
checkbox.getBody().add(setNewValueOperation);
623630
return checkbox;
624631
}
@@ -628,12 +635,13 @@ private WidgetDescription createRadioWidget() {
628635
radio.setName("RadioWidget");
629636
radio.setLabelExpression(ServiceMethod.of1(DetailsViewService::getDetailsViewLabel).aqlSelf(E_STRUCTURAL_FEATURE));
630637
radio.setHelpExpression(ServiceMethod.of1(DetailsViewService::getDetailsViewHelpText).aqlSelf(E_STRUCTURAL_FEATURE));
631-
radio.setCandidatesExpression(AQLUtils.getSelfServiceCallExpression("getEnumCandidates", E_STRUCTURAL_FEATURE));
638+
radio.setCandidatesExpression(ServiceMethod.of1(DetailsViewService.class, DetailsViewService::getEnumCandidates, Element.class, EAttribute.class).aqlSelf(E_STRUCTURAL_FEATURE));
632639
radio.setCandidateLabelExpression("aql:candidate.name");
633-
radio.setValueExpression(AQLUtils.getSelfServiceCallExpression("getEnumValue", E_STRUCTURAL_FEATURE));
640+
radio.setValueExpression(ServiceMethod.of1(DetailsViewService.class, DetailsViewService::getEnumValue, Element.class, EAttribute.class).aqlSelf(E_STRUCTURAL_FEATURE));
634641
radio.setIsEnabledExpression(AQL_NOT_SELF_IS_READ_ONLY_E_STRUCTURAL_FEATURE);
635642
ChangeContext setNewValueOperation = ViewFactory.eINSTANCE.createChangeContext();
636-
setNewValueOperation.setExpression(AQLUtils.getSelfServiceCallExpression("setNewValue", List.of(E_STRUCTURAL_FEATURE, "newValue.instance")));
643+
setNewValueOperation.setExpression(
644+
ServiceMethod.of2(DetailsViewService.class, DetailsViewService::setNewValue, Element.class, EStructuralFeature.class, Object.class).aqlSelf(E_STRUCTURAL_FEATURE, "newValue.instance"));
637645
radio.getBody().add(setNewValueOperation);
638646
return radio;
639647
}
@@ -647,7 +655,7 @@ private WidgetDescription createReferenceWidget() {
647655
refWidget.setReferenceOwnerExpression(AQLConstants.AQL_SELF);
648656
refWidget.setIsEnabledExpression(AQL_NOT_SELF_IS_READ_ONLY_E_STRUCTURAL_FEATURE);
649657
ChangeContext setRefWidget = ViewFactory.eINSTANCE.createChangeContext();
650-
setRefWidget.setExpression(AQLUtils.getSelfServiceCallExpression("handleReferenceWidgetNewValue", List.of(E_STRUCTURAL_FEATURE + ".name", ViewFormDescriptionConverter.NEW_VALUE)));
658+
setRefWidget.setExpression(ServiceMethod.of2(DetailsViewService::handleReferenceWidgetNewValue).aqlSelf(E_STRUCTURAL_FEATURE + ".name", ViewFormDescriptionConverter.NEW_VALUE));
651659
refWidget.getBody().add(setRefWidget);
652660
return refWidget;
653661
}

backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/edges/AbstractAllocateEdgeDescriptionProvider.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2023, 2025 Obeo.
2+
* Copyright (c) 2023, 2026 Obeo.
33
* This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v2.0
55
* which accompanies this distribution, and is available at
@@ -24,10 +24,11 @@
2424
import org.eclipse.sirius.components.view.diagram.LineStyle;
2525
import org.eclipse.sirius.components.view.diagram.NodeDescription;
2626
import org.eclipse.sirius.components.view.diagram.SynchronizationPolicy;
27+
import org.eclipse.syson.diagram.common.view.services.ViewEdgeService;
2728
import org.eclipse.syson.sysml.SysmlPackage;
2829
import org.eclipse.syson.sysml.helper.LabelConstants;
2930
import org.eclipse.syson.util.AQLConstants;
30-
import org.eclipse.syson.util.AQLUtils;
31+
import org.eclipse.syson.util.ServiceMethod;
3132
import org.eclipse.syson.util.SysMLMetamodelHelper;
3233
import org.eclipse.syson.util.ViewConstants;
3334

@@ -111,13 +112,15 @@ private EdgeStyle createEdgeStyle() {
111112
@Override
112113
protected ChangeContextBuilder getSourceReconnectToolBody() {
113114
return this.viewBuilderHelper.newChangeContext()
114-
.expression(AQLUtils.getServiceCallExpression(AQLConstants.EDGE_SEMANTIC_ELEMENT, "reconnectSourceAllocateEdge", AQLConstants.SEMANTIC_RECONNECTION_TARGET));
115+
.expression(ServiceMethod.of1(ViewEdgeService::reconnectSourceAllocateEdge)
116+
.aql(AQLConstants.EDGE_SEMANTIC_ELEMENT, AQLConstants.SEMANTIC_RECONNECTION_TARGET));
115117

116118
}
117119

118120
@Override
119121
protected ChangeContextBuilder getTargetReconnectToolBody() {
120122
return this.viewBuilderHelper.newChangeContext()
121-
.expression(AQLUtils.getServiceCallExpression(AQLConstants.EDGE_SEMANTIC_ELEMENT, "reconnectTargetAllocateEdge", AQLConstants.SEMANTIC_RECONNECTION_TARGET));
123+
.expression(ServiceMethod.of1(ViewEdgeService::reconnectTargetAllocateEdge)
124+
.aql(AQLConstants.EDGE_SEMANTIC_ELEMENT, AQLConstants.SEMANTIC_RECONNECTION_TARGET));
122125
}
123126
}

backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/edges/AbstractDefinitionOwnedUsageEdgeDescriptionProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
import org.eclipse.sirius.components.view.diagram.LineStyle;
3131
import org.eclipse.sirius.components.view.diagram.NodeDescription;
3232
import org.eclipse.sirius.components.view.diagram.SynchronizationPolicy;
33+
import org.eclipse.syson.diagram.common.view.services.ViewToolService;
3334
import org.eclipse.syson.diagram.services.aql.DiagramMutationAQLService;
3435
import org.eclipse.syson.diagram.services.aql.DiagramQueryAQLService;
3536
import org.eclipse.syson.util.AQLConstants;
36-
import org.eclipse.syson.util.AQLUtils;
3737
import org.eclipse.syson.util.IDescriptionNameGenerator;
3838
import org.eclipse.syson.util.ServiceMethod;
3939
import org.eclipse.syson.util.SysMLMetamodelHelper;
@@ -112,7 +112,7 @@ protected boolean isDeletable() {
112112
@Override
113113
protected DeleteTool getEdgeDeleteTool() {
114114
var changeContext = this.viewBuilderHelper.newChangeContext()
115-
.expression(AQLUtils.getServiceCallExpression("semanticEdgeTarget", "moveToClosestContainingPackage"));
115+
.expression(ServiceMethod.of0(ViewToolService::moveToClosestContainingPackage).aql(org.eclipse.sirius.components.diagrams.description.EdgeDescription.SEMANTIC_EDGE_TARGET));
116116

117117
return this.diagramBuilderHelper.newDeleteTool()
118118
.name("Delete from Model")

0 commit comments

Comments
 (0)