Skip to content

Commit

Permalink
[1860] Change descriptionId type of Node and Edge from UUID to String
Browse files Browse the repository at this point in the history
Bug : eclipse-sirius#1860

Signed-off-by: Michaël Charfadi <[email protected]>
  • Loading branch information
mcharfadi committed Mar 17, 2023
1 parent 482beae commit aaa67c9
Show file tree
Hide file tree
Showing 48 changed files with 356 additions and 390 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;

import org.eclipse.sirius.components.collaborative.diagrams.api.IDiagramContext;
import org.eclipse.sirius.components.compatibility.api.IIdentifierProvider;
Expand Down Expand Up @@ -102,7 +101,7 @@ public IStatus handle(Map<String, Object> variables) {
containmentKind = NodeContainmentKind.BORDER_NODE;
}

UUID descriptionId = UUID.fromString(diagramElementMappingId);
String descriptionId = diagramElementMappingId;
ViewCreationRequest viewCreationRequest = ViewCreationRequest.newViewCreationRequest()
.parentElementId(optionalParentElementId.get())
.descriptionId(descriptionId)
Expand All @@ -111,9 +110,9 @@ public IStatus handle(Map<String, Object> variables) {
.build();

Optional.ofNullable(variables.get(IDiagramContext.DIAGRAM_CONTEXT))
.filter(IDiagramContext.class::isInstance)
.map(IDiagramContext.class::cast)
.ifPresent(diagramContext -> diagramContext.getViewCreationRequests().add(viewCreationRequest));
.filter(IDiagramContext.class::isInstance)
.map(IDiagramContext.class::cast)
.ifPresent(diagramContext -> diagramContext.getViewCreationRequests().add(viewCreationRequest));
} catch (IllegalArgumentException exception) {
this.logger.warn(exception.getMessage(), exception);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

import java.util.List;
import java.util.Map;
import java.util.UUID;

import org.eclipse.sirius.components.compatibility.api.IIdentifierProvider;
import org.eclipse.sirius.components.compatibility.api.IModelOperationHandlerSwitchProvider;
Expand Down Expand Up @@ -64,12 +63,12 @@ public void testEdgeFromNodeToContainer() {
edgeMapping.getTargetMapping().add(containerMapping);

// @formatter:off
UUID nodeMappingUUID = UUID.nameUUIDFromBytes(nodeMapping.getName().getBytes());
UUID containerMappingUUID = UUID.nameUUIDFromBytes(containerMapping.getName().getBytes());
Map<UUID, NodeDescription> id2NodeDescriptions = Map.of(
String nodeMappingUUID = nodeMapping.getName();
String containerMappingUUID = containerMapping.getName();
Map<String, NodeDescription> id2NodeDescriptions = Map.of(
nodeMappingUUID, this.createNodeDescription(nodeMappingUUID),
containerMappingUUID, this.createNodeDescription(containerMappingUUID)
);
);
// @formatter:on

IObjectService objectService = new IObjectService.NoOp();
Expand All @@ -90,7 +89,7 @@ public String getIdentifier(Object element) {
assertThat(edgeDescription.getTargetNodeDescriptions()).contains(id2NodeDescriptions.get(containerMappingUUID));
}

private NodeDescription createNodeDescription(UUID id) {
private NodeDescription createNodeDescription(String nodeMappingUUID) {
// @formatter:off
LabelStyleDescription styleDescription = LabelStyleDescription.newLabelStyleDescription()
.colorProvider(variableManager -> "")
Expand All @@ -102,13 +101,13 @@ private NodeDescription createNodeDescription(UUID id) {
.iconURLProvider(variableManager -> "")
.build();

LabelDescription labelDescription = LabelDescription.newLabelDescription(id.toString())
LabelDescription labelDescription = LabelDescription.newLabelDescription(nodeMappingUUID.toString())
.idProvider(variableManager -> "")
.textProvider(variableManager -> "")
.styleDescriptionProvider(variableManager -> styleDescription)
.build();

return NodeDescription.newNodeDescription(id)
return NodeDescription.newNodeDescription(nodeMappingUUID)
.typeProvider(variableManager -> "")
.targetObjectIdProvider(variableManager -> "")
.targetObjectKindProvider(variableManager -> "")
Expand Down Expand Up @@ -141,12 +140,12 @@ public void testEdgeFromContainerToNode() {
edgeMapping.getTargetMapping().add(nodeMapping);

// @formatter:off
UUID nodeMappingUUID = UUID.nameUUIDFromBytes(nodeMapping.getName().getBytes());
UUID containerMappingUUID = UUID.nameUUIDFromBytes(containerMapping.getName().getBytes());
Map<UUID, NodeDescription> id2NodeDescriptions = Map.of(
String nodeMappingUUID = nodeMapping.getName();
String containerMappingUUID = containerMapping.getName();
Map<String, NodeDescription> id2NodeDescriptions = Map.of(
nodeMappingUUID, this.createNodeDescription(nodeMappingUUID),
containerMappingUUID, this.createNodeDescription(containerMappingUUID)
);
);
// @formatter:on
IObjectService objectService = new IObjectService.NoOp();
IRepresentationMetadataSearchService representationMetadataSearchService = new IRepresentationMetadataSearchService.NoOp();
Expand Down Expand Up @@ -182,12 +181,12 @@ public void testEdgeFromContainerToContainer() {
edgeMapping.getTargetMapping().add(targetContainerMapping);

// @formatter:off
UUID sourceContainerMappingUUID = UUID.nameUUIDFromBytes(sourceContainerMapping.getName().getBytes());
UUID targetContainerMappingUUID = UUID.nameUUIDFromBytes(targetContainerMapping.getName().getBytes());
Map<UUID, NodeDescription> id2NodeDescriptions = Map.of(
String sourceContainerMappingUUID = sourceContainerMapping.getName();
String targetContainerMappingUUID = targetContainerMapping.getName();
Map<String, NodeDescription> id2NodeDescriptions = Map.of(
sourceContainerMappingUUID, this.createNodeDescription(sourceContainerMappingUUID),
targetContainerMappingUUID, this.createNodeDescription(targetContainerMappingUUID)
);
);
// @formatter:on
IObjectService objectService = new IObjectService.NoOp();
IRepresentationMetadataSearchService representationMetadataSearchService = new IRepresentationMetadataSearchService.NoOp();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public void initialize() {
.canCreatePredicate(variableManager -> true)
.labelProvider(variableManager -> "Diagram")
.toolSections(List.of())
.nodeDescriptions(List.of(this.getNodeDescription(UUID.randomUUID())))
.nodeDescriptions(List.of(this.getNodeDescription(UUID.randomUUID().toString())))
.edgeDescriptions(List.of())
.dropHandler(variableManager -> new Failure(""))
.build();
Expand Down Expand Up @@ -184,7 +184,7 @@ private void handleAndCheckExecution(String variableName, ENamedElement renamedE
assertEquals(newName, renamedElement.getName());
}

private NodeDescription getNodeDescription(UUID nodeDescriptionId) {
private NodeDescription getNodeDescription(String nodeDescriptionId) {
// @formatter:off
LabelStyleDescription labelStyleDescription = LabelStyleDescription.newLabelStyleDescription()
.colorProvider(variableManager -> "#000000")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,13 @@ public void initialize() {
.canCreatePredicate(variableManager -> true)
.labelProvider(variableManager -> "Diagram")
.toolSections(List.of())
.nodeDescriptions(List.of(this.getNodeDescription(UUID.randomUUID())))
.nodeDescriptions(List.of(this.getNodeDescription(UUID.randomUUID().toString())))
.edgeDescriptions(List.of())
.dropHandler(variableManager -> new Failure(""))
.build();

Node node = Node.newNode(UUID.randomUUID().toString())
.descriptionId(UUID.randomUUID())
.descriptionId(UUID.randomUUID().toString())
.type("Node")
.targetObjectId(UUID.randomUUID().toString())
.targetObjectKind("ecore::EPackage")
Expand Down Expand Up @@ -158,7 +158,7 @@ public void deleteViewOperationHandlerNominalCaseTest() {
assertTrue(handleResult instanceof Success);
}

private NodeDescription getNodeDescription(UUID nodeDescriptionId) {
private NodeDescription getNodeDescription(String nodeDescriptionId) {
// @formatter:off
LabelStyleDescription labelStyleDescription = LabelStyleDescription.newLabelStyleDescription()
.colorProvider(variableManager -> "#000000")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
import java.util.function.Function;

import org.eclipse.sirius.components.compatibility.api.IIdentifierProvider;
Expand Down Expand Up @@ -75,7 +74,7 @@ public AbstractNodeMappingConverter(IObjectService objectService, IEditService e
this.imageSizeProvider = Objects.requireNonNull(imageSizeService);
}

public NodeDescription convert(AbstractNodeMapping abstractNodeMapping, AQLInterpreter interpreter, Map<UUID, NodeDescription> id2NodeDescriptions) {
public NodeDescription convert(AbstractNodeMapping abstractNodeMapping, AQLInterpreter interpreter, Map<String, NodeDescription> id2NodeDescriptions) {
LabelStyleDescriptionConverter labelStyleDescriptionConverter = new LabelStyleDescriptionConverter(interpreter, this.objectService);
Function<VariableManager, org.eclipse.sirius.viewpoint.description.style.LabelStyleDescription> abstractNodeMappingDescriptionProvider = new LabelStyleDescriptionProvider(interpreter,
abstractNodeMapping);
Expand Down Expand Up @@ -146,7 +145,7 @@ public NodeDescription convert(AbstractNodeMapping abstractNodeMapping, AQLInter
}

// @formatter:off
NodeDescription description = NodeDescription.newNodeDescription(UUID.fromString(this.identifierProvider.getIdentifier(abstractNodeMapping)))
NodeDescription description = NodeDescription.newNodeDescription(this.identifierProvider.getIdentifier(abstractNodeMapping))
.typeProvider(typeProvider)
.targetObjectIdProvider(semanticTargetIdProvider)
.targetObjectKindProvider(semanticTargetKindProvider)
Expand Down Expand Up @@ -195,7 +194,7 @@ private Function<VariableManager, String> getLabelIdProvider() {
};
}

private List<NodeDescription> getChildNodeDescriptions(AbstractNodeMapping abstractNodeMapping, AQLInterpreter interpreter, Map<UUID, NodeDescription> id2NodeDescriptions) {
private List<NodeDescription> getChildNodeDescriptions(AbstractNodeMapping abstractNodeMapping, AQLInterpreter interpreter, Map<String, NodeDescription> id2NodeDescriptions) {
// @formatter:off
List<NodeDescription> childNodeDescriptions = new ArrayList<>();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public EdgeMappingConverter(IObjectService objectService, IEditService editServi
this.modelOperationHandlerSwitchProvider = Objects.requireNonNull(modelOperationHandlerSwitchProvider);
}

public EdgeDescription convert(EdgeMapping edgeMapping, AQLInterpreter interpreter, Map<UUID, NodeDescription> id2NodeDescriptions) {
public EdgeDescription convert(EdgeMapping edgeMapping, AQLInterpreter interpreter, Map<String, NodeDescription> id2NodeDescriptions) {
Function<VariableManager, String> targetIdProvider = variableManager -> {
return variableManager.get(VariableManager.SELF, Object.class).map(this.objectService::getId).orElse(null);
};
Expand Down Expand Up @@ -115,7 +115,7 @@ public EdgeDescription convert(EdgeMapping edgeMapping, AQLInterpreter interpret
var deleteHandler = toolConverter.createDeleteToolHandler(edgeMapping.getDeletionDescription());
var labelEditHandler = toolConverter.createEdgeDirectEditToolHandler(edgeMapping.getLabelDirectEdit());

Builder builder = EdgeDescription.newEdgeDescription(UUID.fromString(this.identifierProvider.getIdentifier(edgeMapping)))
Builder builder = EdgeDescription.newEdgeDescription(this.identifierProvider.getIdentifier(edgeMapping))
.targetObjectIdProvider(targetIdProvider)
.targetObjectKindProvider(targetKindProvider)
.targetObjectLabelProvider(targetLabelProvider)
Expand Down Expand Up @@ -166,7 +166,7 @@ private LabelDescription createLabelDescription(AQLInterpreter interpreter, Labe
* The mappings referenced by the edge description (source or target)
* @return The relevant node descriptions created by the node and container description converters
*/
private List<NodeDescription> getNodeDescriptions(List<DiagramElementMapping> mappings, Map<UUID, NodeDescription> id2NodeDescriptions) {
private List<NodeDescription> getNodeDescriptions(List<DiagramElementMapping> mappings, Map<String, NodeDescription> id2NodeDescriptions) {
// @formatter:off
return mappings.stream()
.filter(AbstractNodeMapping.class::isInstance)
Expand All @@ -188,7 +188,7 @@ private Function<VariableManager, List<?>> getSemanticElementsProvider(AQLInterp
semanticElementsProvider = this.semanticCandidatesProviderFactory.getSemanticCandidatesProvider(interpreter, domainClass, semanticCandidatesExpression, preconditionExpression);
} else {
// @formatter:off
List<UUID> sourceNodeDescriptionIds = sourceNodeDescriptions.stream()
List<String> sourceNodeDescriptionIds = sourceNodeDescriptions.stream()
.map(NodeDescription::getId)
.toList();
// @formatter:on
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2019, 2020 Obeo.
* Copyright (c) 2019, 2023 Obeo.
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
Expand All @@ -15,7 +15,6 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
import java.util.function.Function;

import org.eclipse.sirius.components.diagrams.description.DiagramDescription;
Expand All @@ -31,10 +30,10 @@
*/
public class RelationBasedSemanticElementsProvider implements Function<VariableManager, List<?>> {

private final List<UUID> sourceNodeDescriptionIds;
private final List<String> sourceNodeDescriptionIds;

public RelationBasedSemanticElementsProvider(List<UUID> sourceNodeDescriptionIds) {
this.sourceNodeDescriptionIds = Objects.requireNonNull(sourceNodeDescriptionIds);
public RelationBasedSemanticElementsProvider(List<String> sourceNodeDescriptionIds2) {
this.sourceNodeDescriptionIds = Objects.requireNonNull(sourceNodeDescriptionIds2);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;

import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
Expand Down Expand Up @@ -150,8 +149,8 @@ private Optional<String> mapDiagramElementToTargetObjectId(Object object) {
return targetObjectId;
}

private Optional<UUID> mapDiagramElementToDescriptionId(Object object) {
Optional<UUID> descriptionId = Optional.empty();
private Optional<String> mapDiagramElementToDescriptionId(Object object) {
Optional<String> descriptionId = Optional.empty();
if (object instanceof Node) {
descriptionId = Optional.of(((Node) object).getDescriptionId());
} else if (object instanceof Edge) {
Expand All @@ -160,7 +159,7 @@ private Optional<UUID> mapDiagramElementToDescriptionId(Object object) {
return descriptionId;
}

private Optional<Object> mapDescriptionIdToDescription(UUID descriptionId, DiagramDescription diagramDescription, Object diagramElement) {
private Optional<Object> mapDescriptionIdToDescription(String descriptionId, DiagramDescription diagramDescription, Object diagramElement) {
Optional<Object> result = Optional.empty();
if (diagramElement instanceof Node) {
var description = this.diagramDescriptionService.findNodeDescriptionById(diagramDescription, descriptionId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
import java.util.function.Function;

import org.eclipse.emf.ecore.EObject;
Expand Down Expand Up @@ -86,7 +85,7 @@ public DiagramDescriptionNodeAndEdgeDescriptionsPopulator(IToolProvider toolProv

@Override
public Builder populate(Builder builder, DiagramDescription siriusDiagramDescription, AQLInterpreter interpreter) {
Map<UUID, NodeDescription> id2NodeDescriptions = new LinkedHashMap<>();
Map<String, NodeDescription> id2NodeDescriptions = new LinkedHashMap<>();

// @formatter:off
List<Layer> layers = LayerModelHelper.getAllLayers(siriusDiagramDescription).stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

import java.util.List;
import java.util.Map;
import java.util.UUID;

import org.eclipse.sirius.components.diagrams.description.EdgeDescription;
import org.eclipse.sirius.components.diagrams.description.NodeDescription;
Expand All @@ -28,5 +27,5 @@
* @author sbegaudeau
*/
public interface IToolProvider {
List<ToolSection> getToolSections(Map<UUID, NodeDescription> id2NodeDescriptions, List<EdgeDescription> edgeDescriptions, DiagramDescription siriusDiagramDescription, List<Layer> layers);
List<ToolSection> getToolSections(Map<String, NodeDescription> id2NodeDescriptions, List<EdgeDescription> edgeDescriptions, DiagramDescription siriusDiagramDescription, List<Layer> layers);
}
Loading

0 comments on commit aaa67c9

Please sign in to comment.