Sichtbarkeit von get/set und Codegenerierung

DoSDoS
edited January 2013 in Round-Trip-Engineering NG
Guten Tag,
ich bin Anfänger in UML-Lab und habe ein paar Fragen:
1. Get- und Setmethoden werden automatisch generiert, wenn ich ein Attribut anlege. Das Attribut ist in der Codegenerierung später privat und hat öffentliche Get- und Setmethoden. So weit so gut. Im "Model"/Klassendiagramm tauchen die Get- und -Setmethoden nicht aut, sondern sind an dem "+" vor dem Attribut erkennbar (weil klar ist, dass das Attribut selbst immer private ist). Ich finde das auch sinnvoll, allerdings benötige ich im Moment eine "klassischere" Darstellung: vor dem Attribut ein "-" und die zugehörigen Get- und Setmethoden , mit "+"/öffentlich gekennzeichnet, in den Methodenbereich des Klassendiagramms. Wie kann ich das nun mit UML-Lab realisieren? Mit einem CodeStyle?

2. Warum werden, wenn man beispielsweise 3 Attribute und damit auch automatisch die Get-, Setmethoden erzeugt, die Attribute und Methoden in der generierten Klasse "komisch" geordnet: Attribut, set..., get... , Attribut2, set2...,get2...,Attribut3.... usw. Warum nicht: Attribut1, Attribut2, Attribut3, get1, set1,get2,set2 usw. Wie kann man das umstellen. Müsste man dafür die Attribute.xpt (Template) ändern? Und wenn ja wie?

Mit freundlichen Grüßen,
DoS

Comments

  • edited January 2013
    Hallo DoS,

    gerne beantworte ich Ihre Fragen.

    Zur ersten Frage: UML Lab benutzt CodeStyles um von Implementierungsdetails zu abstrahieren. Daher ist es in diesem Fall "gewollt", dass Getter und Setter im Modell nicht auftauchen.

    Wenn Sie ein 1:1 Mapping haben möchten müssen Sie unsere mitgelieferten Templates verändern. Dazu zunächst in den Projektsettings alle CodeStyles bis auf den Standard Stil deaktivieren. Rechtsklick auf das Projekt, dann "Properties -> UML Lab -> Reverse Engineering -> Code Style Priorities". Hier alle Haken bis auf bei Standard entfernen.

    Unsere mitgelieferten Templates können überschrieben werden, indem ein CodeStyle Projekt mit gleichnamigen Template-Dateien im Workspace angelegt wird. Ich habe das einfach einmal für Sie erledigt, siehe Anhang. Das Projekt einfach in den Workspace kopieren, und dann "UML Lab -> Code Generator -> Reload Templates" wählen. Wenn alles geklappt hat wird nun angezeigt, dass drei Templates überschrieben werden. Beim nächsten Reverse Engineering haben Sie dann Getter und Setter im Modell...

    Zur zweiten Frage. Es werden immer alle zusammengehörigen Codefragmente für ein Element hintereinander generiert. Wenn Sie das anders haben möchten, müssen Sie nach dem Codegenerieren die JDT Cleanup Aktionen aufrufen.

    Viele Grüße
    Manuel Bork
    zip
    zip
    plain.zip
    6K
Sign In or Register to comment.