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.
Die JET2-Umsetzung 'JDT in Code' ist die Umsetzung der höchsten Ebene.
| JET2-Umsetzung 'JDT in Code' |
|
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.
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.
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' |
|
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); } |
<TBD>
<TBD>