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 a044367
Show file tree
Hide file tree
Showing 50 changed files with 356 additions and 400 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

=== Breaking changes

- https://github.com/eclipse-sirius/sirius-components/issues/1860[1860] [view] Changed the type of descriptionId of Node and Edge from UUID to String
- https://github.com/eclipse-sirius/sirius-components/issues/1643[1643] [core] Removed our dependencies to Spring Security
- https://github.com/eclipse-sirius/sirius-components/issues/1592[#1592] [view] In View-based diagram definition, all tools applicable on a given element are now configured inside the new _Palette_ element directly inside the element (diagram, node or edge) description.
- https://github.com/eclipse-sirius/sirius-components/issues/1761[#1761] [core] Remove `sirius-web-graphql-schema` since it was not really used anymore
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 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 @@ -16,7 +16,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 @@ -68,7 +67,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 +114,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,12 +165,12 @@ 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)
.map(AbstractNodeMapping.class::cast)
.map(mapping -> UUID.fromString(this.identifierProvider.getIdentifier(mapping)))
.map(mapping -> this.identifierProvider.getIdentifier(mapping))
.map(id2NodeDescriptions::get)
.filter(Objects::nonNull)
.toList();
Expand All @@ -188,7 +187,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,9 +30,9 @@
*/
public class RelationBasedSemanticElementsProvider implements Function<VariableManager, List<?>> {

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

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

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 a044367

Please sign in to comment.