J'arrive à présent à obtenir 'aggregate' dans l'objectmodel mais la méthode isAggregate() renvoie toujours false dans le code du générateur. Code java : ObjectModelAttribute attribute = ...; /*{ <!-- <%=attribute.isAggregate()%> --> }*/ sortie : <!-- false -->. La méthode isComposite() me renvoie true par contre. Je m'attendais à avoir true en appelant isAggregate(). Le mardi 21 juillet 2009 à 12:19 +0200, Eric Chatellier a écrit :
Romain Manni-Bucau a écrit :
Bonjour,
Bonjour,
je travaille sur un générateur de Néréide et j'ai besoin de faire la différence entre une composition et une agrégation. Les générateurs créaient les objectmodels à partir des xmi contenus dans les zargo d'ArgoUML (xmi v1.2). Il me semble que dans la feuille de style xsl "xmi1.2ToObjectModel.xsl" les agrégations soient remplacées par des compositions. Est-ce qu'en modifiant la feuille de style les générateurs marcheront convenablement ou est ce une limitation des générateurs ? :
Modifications éventuelles : l544 - 550 : <!-- BB: attribute entity must have associationType, we put 'composite' because composite is already defined for attribute association, but perhaps other value like internal is better. If we change that we must change template too --> <xsl:attribute name="associationType"> <xsl:text>composite</xsl:text> </xsl:attribute>
remplacées par : <xsl:attribute name="associationType"> <xsl:value-of select="$associationType"/> </xsl:attribute>
Je pense que ce cas concerne la valeur par défaut, dans le cas d'un attribut.
Dans votre cas (association), le code est plutôt (l. 516) : <xsl:if test="@aggregation='aggregate' or @aggregation='composite'"> <xsl:attribute name="associationType"> <xsl:value-of select="@aggregation"/> </xsl:attribute> </xsl:if>
Je viens de faire le test, et j'obtient bien associationType="aggregate" dans le fichier .objectmodel.
Pouvez vous nous fournir d'autres éléments permettant d'identifier votre problème ? Voire votre modèle, et le résultat attendu ?
Merci
D'avance merci.