Skip to content

Commit 0c83223

Browse files
committed
Improve version grouping to handle duplicate models
Updated the groupByVersion method to use a LinkedHashMap for collecting models by their URN, ensuring duplicates are removed before grouping by version. This change improves the accuracy of version grouping when duplicate models are present.
1 parent 53bbc1b commit 0c83223

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

aspect-model-editor-service/src/main/java/org/eclipse/esmf/ame/services/utils/ModelGroupingUtils.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,21 @@ private Model createModel( final ModelElement element, final KnownVersion versio
103103
}
104104

105105
private List<Version> groupByVersion( final List<Model> models ) {
106-
return models.stream().collect( Collectors.groupingBy( model -> model.getAspectModelUrn().getVersion() ) ).entrySet().stream()
107-
.sorted( Map.Entry.comparingByKey() ).map( entry -> new Version( entry.getKey(),
108-
entry.getValue().stream().sorted( Comparator.comparing( Model::getModel ) ).toList() ) ).toList();
106+
return models.stream()
107+
.collect( Collectors.toMap(
108+
Model::getAspectModelUrn,
109+
model -> model,
110+
( existing, duplicate ) -> existing,
111+
LinkedHashMap::new
112+
) )
113+
.values()
114+
.stream()
115+
.collect( Collectors.groupingBy( model -> model.getAspectModelUrn().getVersion() ) )
116+
.entrySet()
117+
.stream()
118+
.sorted( Map.Entry.comparingByKey() )
119+
.map( entry -> new Version( entry.getKey(),
120+
entry.getValue().stream().sorted( Comparator.comparing( Model::getModel ) ).toList() ) )
121+
.toList();
109122
}
110123
}

0 commit comments

Comments
 (0)