2016-07-01 8 views
0

Ich erstelle Code für Schnittstellen, die in IBM Rational Rhapsody angegeben sind. Rhapsody generiert implizit Include-Anweisungen für andere Datentypen, die in meinen Interfaces verwendet werden. Aber ich hätte gerne mehr Kontrolle über die include-Anweisungen, also spezifiziere ich sie explizit als Textelemente in den Quellartefakten der Komponente. Daher möchte ich verhindern, dass Rhapsody die Include-Anweisungen selbst generiert. Ist das möglich?So vermeiden Sie implizite Include-Anweisungen in der Rhapsody-Codegenerierung

Antwort

0

Schließlich habe ich die Eigenschaften gefunden, die Rhapsody die erforderliche Ausgabe erzeugen lassen: GenerateImplicitDependencies für mehrere Elemente und GenerateDeclarationDependency für Type-Elemente. Wenn Sie diese deaktivieren, vermeiden Sie die Generierung von impliziten Include-Anweisungen.

0

Wenn dies möglich ist, ist es meistens mit Eigenschaften. Klicken Sie im Feature-Feld auf Eigenschaften und filtern Sie nach "Einschließen", um einige mögliche Kandidaten zu sehen. Nicht alle Eigenschaften haben Beschreibungen, was sie genau so machen, viel Glück.

EDIT:

ich einige Zeit damit verbracht als auch durch die Eigenschaften der Suche eines nicht bekommen finden konnte, was Sie wollen. Es scheint wahrscheinlich, dass Sie dies nicht mit der Basisversion von Rhapsody tun können. IBM lizenziert ein Add-on zur Anpassung der Code-Generierung, genannt Rules Composer (glaube ich); Dies würde Ihnen fast sicher erlauben, die Includes anzupassen, aber mit ziemlich hohen Kosten.

Es gibt zwei andere mögliche Ansätze. Abhängig davon, wie Sie die Include-Anweisungen anpassen, können Sie möglicherweise ein einfaches Shell-Skript schreiben, vielleicht mit sed, und dann nur dieses Skript ausführen, um Ihren Code jedes Mal zu aktualisieren, wenn Rhapsody es generiert. Der andere Ansatz wäre, die Rhapsody-API zu verwenden, um ein Plugin/Tool zu erstellen, das alle Schnittstellen durchläuft und die Quellartefakte entsprechend ändert. Ich habe diese Methode nicht selbst ausprobiert, aber ich weiß, dass meine Mitarbeiter die API benutzt haben, um ähnliche Dinge zu tun.

+0

Ich habe das schon gemacht, aber ich habe keine Eigenschaft gefunden, die tut, was ich brauche (vielleicht wird die richtige anders benannt, also habe ich sie verpasst). –

Verwandte Themen