Referenzen auf LinkedList im UML Lab

Hello again,

ein wiederkehrendes Problem im UML Lab ist folgendes:

Wenn UML Lab aus folgendem Code ein Diagramm erstellen soll:

private LinkedList(MenuItem) orderItems;

(<,> wird vom HTML Parser verschluckt)

Wird daraus im Diagramm eine Referenz zu LinkedList (siehe Anhang), jedoch keine 1..* referenz zu der Klasse MenuItem.

Gibt man UML Lab im Diagramm eine 1..* Beziehung von Order zu MenuItem vor, generiert er daraus ein Hashset im Code, diese ist jedoch nicht immer brauchbar (z.B. zum Sortieren).

Wie kann man das Problem lösen?

PS: Könntet ihr im Forum vll. eine Einbettung für Quellcode einbinden?
uml_reference.PNG
428 x 304 - 11K

Comments

  • Hallo Patrick,

    UML Lab unterstützt per Default die Collection-Interfaces als Assoziation:

    Set<?>, List<?> und Map<?>

    Sprich konkrete Implementierungen dieser Klassen werden nicht als mengenwertige Assoziation erkannt.

    Möchtest Du umgekehrt für eine Mengenwertige Assoziation eine Liste generiert bekommen, musst Du die entsprechende Rolle als ordered kennzeichnen: Diese Einstellung findest Du entweder wenn Du die Rolle selektierst und in den Properties unter Advanced schaust oder (einfacher) im Pop-Up Menü der Assoziation Edit association wählst und auf das advanced Tab wechselst.

    Übrigens ist dies alles in den Templates "konfiguriert". Sprich, wenn Du einen eigenen CodeStyle anlegst, kannst Du das auch individuell regeln (zB per Default eine Liste oder ein LinkedHashSet verwenden).

    Viele Grüße
    Manuel

    PS Quellcode geht mit <code>...</code> - und ein subset von HTML ist ebenfalls freigeschaltet.
  • Hi,

    auch wenn es eigentlich keine "best Practice" ist, Unterklassen von List und Set in der Deklaration zu benutzen, sollten wir das vielleicht in den Legacy-Templates trotzdem erlauben. Dann hätte Patrick einen leichteren Einstieg gehabt.

    Gruß,
    Christian

    P.S. und eine Funktion hier im Forum, die einem die möglichen Tags listet wäre total toll ;-)
Sign In or Register to comment.