From 0c383d0a5309bc970e3328cfe6d79a460c5ff414 Mon Sep 17 00:00:00 2001 From: anquetil Date: Tue, 11 Jun 2024 14:42:57 +0200 Subject: [PATCH] Add uses relationships as composition in FamixUMLRoassalBackend --- .../FamixUMLRoassalBackend.class.st | 3 ++- .../FamixUMLRoassalDescriptor.class.st | 20 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/Famix-UMLDocumentor/FamixUMLRoassalBackend.class.st b/src/Famix-UMLDocumentor/FamixUMLRoassalBackend.class.st index 3e372f72..3ad5e014 100644 --- a/src/Famix-UMLDocumentor/FamixUMLRoassalBackend.class.st +++ b/src/Famix-UMLDocumentor/FamixUMLRoassalBackend.class.st @@ -18,11 +18,12 @@ FamixUMLRoassalBackend >> canvas [ { #category : #api } FamixUMLRoassalBackend >> export: famixUMLEntities [ - + "note: formating is described in #modelDescriptor:" | builder | builder := RSUMLClassBuilder new. builder modelDescriptor: (FamixUMLRoassalDescriptor new umlModel: famixUMLEntities ; yourself). + builder classes: (famixUMLEntities select: [:e | e class = FamixUMLClass]). builder build. diff --git a/src/Famix-UMLDocumentor/FamixUMLRoassalDescriptor.class.st b/src/Famix-UMLDocumentor/FamixUMLRoassalDescriptor.class.st index 12bc5fe1..0a6fa60c 100644 --- a/src/Famix-UMLDocumentor/FamixUMLRoassalDescriptor.class.st +++ b/src/Famix-UMLDocumentor/FamixUMLRoassalDescriptor.class.st @@ -1,5 +1,13 @@ " Used by Roassal (`RSUMLClassBuilder`) to get informations about classes to put in the visualization + +""Formating"" is in #initialize + +The other methods or mainly helpers + +API: +- aggregations -- returns all aggregations in the model +- compositions -- used to represent class-use-trait relationships " Class { #name : #FamixUMLRoassalDescriptor, @@ -28,6 +36,16 @@ FamixUMLRoassalDescriptor >> aggregations [ (self umlClassNamed: aggreg source) -> (self umlClassNamed: aggreg target) ]) ] +{ #category : #accessing } +FamixUMLRoassalDescriptor >> compositions [ + + ^(umlModel + select: [ :umlEntity | umlEntity class = FamixUMLUse ] + thenCollect: [ :use | + (self umlClassNamed: use target) -> (self umlClassNamed: use source) ]) + +] + { #category : #initialization } FamixUMLRoassalDescriptor >> initialize [ @@ -39,7 +57,7 @@ FamixUMLRoassalDescriptor >> initialize [ instVars: [ :famixUMLClass | famixUMLClass properties sorted: #name ascending ] ; methods: [ :famixUMLClass | #() ] ; instVarSelector: #name ; - methodsLimit: SmallInteger maxVal ; + "methodSelector: #name ;" isAbstract: [ :famixUMLClass | famixUMLClass isStub ] ]