Umsetzung 'JDT AST in Java JET2' - Referenzhandbuch

In diesem Dokument sind die Elemente und die Struktur der JET2-Umsetzung für die Generierung von Java-Code aus JDT AST beschrieben. Es ist insbesondere für Anwendungsentwickler von Nutzen, die diese Umsetzung verwenden wollen, um Java-Code aus JDT AST zu generieren.

JET2-Umsetzung 'JDT in Code'

Die JET2-Umsetzung 'JDT in Code' ist die Umsetzung der höchsten Ebene.

JET2-Umsetzung 'JDT in Code'
Kennung com.ibm.xtools.transform.java.jet2templates
Quelle java.util.Map (Zuordnung zwischen org.eclipse.jdt.core.IJavaProject und einer Gruppe von Elementen aus org.eclipse.jdt.core.dom.CompilationUnit für dieses Projekt)
Generiert Java-Dateien für jedes CompilationUnit-Element im entsprechenden Projekt

Die Umsetzung erwartet Map<IJavaProject,Collection<CompilationUnit>> als Stammelement. Anschließend verarbeitet sie die Elementgruppe für jedes Projekt und generiert die entsprechenden Quellendateien im entsprechenden Projekt. Die CompilationUnit-Elemente sollen alle erforderlichen Informationen, d. h. Paketdeklarationen, Importdeklarationen usw. enthalten.

modelInspectors

Die Umsetzung verwendet die Erweiterung 'org.eclipse.jet.modelInspectors', um die JDT AST-Elemente in den JET-Schablonen zu durchqueren. Ein Inspector ist ein Objekt, das Objekte an das XPath-Informationsmodell adaptiert. Jeder Inspector definiert die Typen der Objekte, deren Adaptierung er vornehmen kann, und es werden ausschließlich solche Projekte an den Inspector übergeben. Für jedes ASTNode-Element gibt es einen Inspector, der die XPath-Abfragen für dieses ASTNode-Element bearbeitet. Solche Inspectors werden im Plug-in 'com.ibm.xtools.transform.java.jet2' implementiert.

Erweiterbarkeit

Die Umsetzung stellt den Erweiterungspunkt 'com.ibm.xtools.transform.java.jet2.IJavaJET2ListenerProvider' bereit, der den aufrufenden Umsetzungen die Durchführung angepasster Aktionen während der Umsetzungsausführung ermöglicht. Mit der Schnittstelle 'IJavaJET2ListenerProvider' können Clients Listener bei der Java JET2-Umsetzung für jedes ASTNode-Element sowie 'org.eclipse.jet.IWriterListener' für jede geschriebene Datei registrieren. Die Struktur des Erweiterungspunkts ist nachfolgend beschrieben.

Erweiterung für 'IJavaJET2ListenerProvider'
Kennung com.ibm.xtools.transform.java.jet2.IJavaJET2ListenerProvider
Element JavaJET2ListenerProvider
Attribut class
Implementiert com.ibm.xtools.transform.java.jet2.listeners.IJavaJET2ListenerProvider

Die Schnittstelle 'IJavaJET2ListenerProvider' ist wie folgt definiert:

public interface IJavaJET2ListenerProvider {
    public IJavaJET2Listener getJavaJET2Listener(String activityId);
    public IWriterListener getWriterListener(String activityId);
}

IJavaJET2Listener ist ein Listener auf Knotenebene, der vor und nach der Verarbeitung jedes ASTNode-Elements aufgerufen wird. IWriterListener ist hingegen ein Listener auf Dateiebene, der vor und nach dem Festschreiben jeder Datei aufgerufen wird. Dateibeiträge können Listener nur für bestimmte Aktivitäten-IDs (activityIds) bereitstellen, die für sie von Belang sind. Die Kennung 'ActivityId' kann durch die Clients der Java JET2-Umsetzung angegeben werden. Ein Dateibeitrag kann Listener für jede activityId-Kennung bereitstellen, was es ihm ermöglicht, jede beliebige Umsetzung zu erweitern, die die Java JET2-Umsetzung aufruft. Die Schnittstelle 'IJavaJET2Listener' ist wie folgt definiert:

public interface IJavaJET2Listener {
    public void preVisit (ASTNode node, JET2Writer writer);
    public void postVisit(ASTNode node, JET2Writer writer);
}

Inkrementeller Schreibvorgang

<TBD>

Codeformatierung

<TBD>