Trasformazione JDT AST a Java JET2 - Guida di riferimento

Questo documento descrive gli elementi e la struttura della trasformazione JET2 per la generazione di codice Java da un JDT AST. È particolarmente utile per gli sviluppatori che desiderano utilizzare questa trasformazione per generare codice Java da un JDT AST.

Trasformazione JDT a codice JET2

La trasformazione JDT a codice JET2 è la trasformazione di livello superiore.

Trasformazione JDT a codice JET2
Identificatore com.ibm.xtools.transform.java.jet2templates
Origine java.util.Map (un'associazione tra org.eclipse.jdt.core.IJavaProject e una raccolta di elementi org.eclipse.jdt.core.dom.CompilationUnit per il progetto)
Genera File Java per ogni unità di compilazione nel progetto corrispondente

La trasformazione prevede Map<IJavaProject,Collection<CompilationUnit>> come elemento root. Quindi elabora la raccolta per ogni progetto e genera i file di origine corrispondenti nel progetto corrispondente. Gli elementi dell'unità di compilazione devono contenere tutte le informazioni richieste, ad esempio Dichiarazioni di package, Dichiarazioni di importazione, ecc.

modelInspectors

La trasformazione utilizza l'estensione org.eclipse.jet.modelInspectors per visitare JDT AST nei template JET. Un inspector è un oggetto che adatta gli oggetti al modello di informazioni XPath. Ogni Inspector definisce i tipi di oggetto a cui è in grado di adattarsi e riceve solo tali oggetti. È presente un inspector per ogni ASTNode che risponde alle query XPath per quell'ASTNode. Tali inspector sono implementati nel plugin com.ibm.xtools.transform.java.jet2

Estendibilità

La trasformazione fornisce il punto di estensione com.ibm.xtools.transform.java.jet2.IJavaJET2ListenerProvider che consente alle trasformazioni di richiamo di eseguire azioni personalizzate durante l'esecuzione della trasformazione. IJavaJET2ListenerProvider è un'interfaccia che consente ai client di registrare listener con la trasformazione Java JET2 per ogni ASTNode e org.eclipse.jet.IWriterListener per ogni file scritto. La struttura del punto di estensione è descritta di seguito

Estensione IJavaJET2ListenerProvider
Identificatore com.ibm.xtools.transform.java.jet2.IJavaJET2ListenerProvider
Elemento JavaJET2ListenerProvider
attributo classe
implementa com.ibm.xtools.transform.java.jet2.listeners.IJavaJET2ListenerProvider

L'interfaccia IJavaJET2ListenerProvider è definita come segue

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

IJavaJET2Listener è un listener a livello nodo richiamato prima e dopo l'elaborazione di ogni ASTNode mentre IWriterListener è un listener a livello file richiamato prima e dopo il commit di ogni file. I contributori possono fornire listener solo per gli specifici activityId a cui sono interessati. L'ActivityId è un identificativo che può essere specificato dai client della trasformazione Java JET2 e un contributore può fornire listener per ogni activityId consentendo al contributore di estendere qualsiasi trasformazione che richiama la trasformazione Java JET2. L'interfaccia IJavaJET2Listener è definita come segue

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

Scrittura incrementale

<TBD>

Formattazione codice

<TBD>