In diesem Beispiel wird erläutert, wie ein Diagramm zum Angeben der Eingabe für eine Modell-Modell-Umsetzung verwendet wird. In diesem Abschnitt wird erklärt, wie diese Art der Umsetzung ausgeführt und konfiguriert wird.
Vorbereitungen
Verwenden Sie die Anweisungen im Abschnitt "Konfigurationsanweisungen für eine Modell-Modell-Umsetzung, von der ein Diagramm zum Angeben der Eingabe verwendet wird" zum Konfigurieren des Beispiels.
- Prüfen Sie in der Laufzeitworkbench die Quelle und die Umsetzungskonfiguration.
- Erweitern Sie Diagrams and Models und beachten Sie, dass sowohl Diagramm- als auch Modellelemente im Quellenprojekt enthalten sind.
- Klicken Sie mit der rechten Maustaste auf 'run test.tc'; klicken Sie anschließend auf .
- Klicken Sie im Umsetzungskonfigurationseditor auf die Registerkarte Eigenschaften. Beachten Sie, dass der für die Eigenschaft DiagramName angegebene Wert Main1 lautet, was für ein Diagramm im Projekt steht.
- Klicken Sie im Umsetzungskonfigurationseditor auf die Registerkarte Haupt und anschließend auf Ausführen.
- Überprüfen Sie die Ausgabe der Umsetzung. Die Ausgabe umfasst Class2, Class4 und Class6, wie im Eingabediagramm Main1 angegeben.
- Überprüfen Sie das Projekt, das Sie in Ihren Arbeitsbereich importiert haben, um zu verstehen, wie die Umsetzung konfiguriert ist.
- Erweitern Sie src, erweitern Sie com.ibm.xtools.transform.authoring.examples.classesindiagram und öffnen Sie die TransformationProvider-Klasse ClassesInDiagramTransformationProvider.
- Beachten Sie, dass die TransformationProvider-Klasse den Namen des Diagramms aus dem Umsetzungskontext abruft und in einer globalen Variable speichert. Der Code lautet ungefähr wie folgt:
protected RootTransformation createRootTransformation(ITransformationDescriptor descriptor) {
return new RootTransformation(descriptor, new MainTransform() {
@Override
public void execute(ITransformContext context) throws Exception {
diagramName = (String)context.getPropertyValue("diagramname");
super.execute(context);
}
});
}
public static String diagramName = null;
- Erweitern Sie das Modell und öffnen Sie die Zuordnungsdatei mit dem Namen ClassesInDiagram.mapping.
- Klicken Sie in der Zuordnungsdeklaration 'Model2Model' mit der rechten Maustaste auf die zweite packagedElement-to-packagedElement-Submap und klicken Sie auf In Eigenschaften anzeigen. Diese Submap ist die Zuordnung 'Class2Class'.
- Klicken Sie im Fenster 'Eigenschaften' auf die Registerkarte Angepasstes Extrahierungsprogramm. Beachten Sie, dass vom angepassten Extrahierungsprogramm die globale Variable zum Ermitteln der Klassen verwendet wird, die verarbeitet werden sollen; hierzu wird auf den Inhalt des angegebenen Diagramms verwiesen. Das angepasste Extrahierungsprogramm für die Zuordnung der Class2Class-Submap in der Package2Package-Zuordnungsdeklaration arbeitet analog.
- Ersetzen Sie in der Laufzeitworkbench im Umsetzungskonfigurationseditor auf der Seite 'Eigenschaften' den Wert im Feld 'diagramName' durch "Main2" und führen Sie die Umsetzung erneut aus. Dieses Mal schlägt die Umsetzung fehl.
Die Umsetzung schlägt fehl, wenn das Diagramm 'Main2' in der Konfiguration benannt wird, weil das Quellmodell eine Generalisierung von Class5 zu Class enthält; Class1 wurde jedoch nicht in das Zielmodell kopiert, weil es im entsprechenden Diagramm nicht angezeigt wurde.
Beachten Sie beim Verfassen einer Umsetzung, dass die Umsetzung alle referenzierten Objekte einschließen muss, die in demselben Modell enthalten sind, damit alle Referenzen im Modell selbst aufgelöst werden können.