Analysemethoden mit den EGL-APIs codieren

Mit den EGL-APIs können Sie die EGL-Sprachelemente analysieren, die Sie für Ihre benutzerdefinierten Regeln auswählen.

Informationen zu diesem Vorgang

Weitere Informationen zu den EGL-APIs und zu dem generierten Implementierungscode finden Sie über die zugehörigen Links am Ende des Abschnitts.

Vorgehensweise

Gehen Sie wie folgt vor, um die Codeanalyse für eine angepasste Regel zu implementieren:

  1. Öffnen Sie die Perspektive Plug-in-Entwicklung.
  2. Klicken Sie im Paketexplorer mit der rechten Maustaste auf die Java™-Quellendatei, die für Ihre angepasste Regel generiert wurde, und klicken Sie auf Öffnen mit > Java-Editor. Die Java-Datei ist im Paketexplorer an folgender Position gespeichert: projektname > src > paketname > klassenname.java. Beispiel: MyPluginProject > src > com.example > EglRule.java.
  3. Fügen Sie im Java-Editor jeder generierten visit()-Methode den erforderlichen Java-Code hinzu, um die Codeanalyse durchzuführen. Es wird eine Methode visit() für jede nicht abstrakte Unterschnittstelle der Schnittstelle des EGL-Anwendungsmodells generiert, die dem ausgewählten EGL-Sprachelement entspricht. Wenn Sie zum Beispiel auf der dritten Seite des Erstellungsassistenten in der Baumstruktur für Anweisungen ('Statements') das Element 'AddStatement' ausgewählt haben, dann gilt Folgendes:
    • Die EAM-Schnittstelle, die dem Element 'AddStatement' entspricht, ist die Schnittstelle AddStatement.
    • Es werden zwei Methoden visit() generiert, und zwar eine für einen AST-Visit und eine für einen IR-Visit für die Schnittstelle.
    Anmerkung:
    • Die Methoden visit() gehören zu den Schnittstellen IASTVisitor und IRVisitor in der API mit angepassten Regeln für die EGL-Codeüberprüfung. Implementieren Sie IASTVistor oder IRVistor nicht direkt, sondern implementieren Sie stattdessen die Unterklasse AbstractASTRuleVisitor bzw. AbstractIRRuleVisitor. Die folgenden Beispiele zeigen die generierten visit()-Methoden:
      • boolean visit(com.ibm.etools.edt.core.ast.AddStatement node)
      • boolean visit(com.ibm.etools.edt.core.ir.api.AddStatement clause)
    • Der Knoten, der als Eingabe an eine Methode visit() übergeben wird, ist eine Unterschnittstelle der Schnittstelle Node im Paket com.ibm.etools.edt.core.ast in der API für das EGL-Anwendungsmodell (EAM).
    • Die Klausel, die als Eingabe an eine Methode visit() übergeben wird, wenn RUN_AS_IR auf 'true' gesetzt ist, ist eine Unterschnittstelle der Schnittstelle Element im Paket com.ibm.etools.edt.core.ir.api in der API für das EGL-Anwendungsmodell (EAM).
    Wenn eine EGL-Quellendatei analysiert wird, startet die Codeanalysefunktion immer dann eine Methode visit(), wenn eine Instanz der entsprechenden Schnittstelle Node oder Element gefunden wird.
  4. Fügen Sie für die folgenden Funktionen Java-Code in jede Methode visit() ein:
    • Verwenden Sie die Schnittstelle Node node oder Element clause bei Verwendung von RUN_AS_IR, die als Eingabe an die Methode visit() übergeben wird, um Informationen zu der Instanz des EGL-Sprachelements zu erhalten, das Sie analysieren.
    • Führen Sie die Codeanalyse für Ihre angepasste Regel aus. Wenn Sie mehr als eine Methode visit() für Ihre Regel haben, müssen Sie wahrscheinlich auch Java-Code schreiben, um die Ergebnisse der einzelnen visit()-Methoden zu koordinieren.
    • Legen Sie den Rückgabecode und die Rückgabeinformationen fest. Geben Sie true an, damit weiterhin untergeordnete Knoten des aktuellen Knotens aufgesucht werden. Geben Sie false an, um weitere Besuche von untergeordneten Knoten zu überspringen. Wenn das EGL-Sprachelement, das analysiert wird, gegen die Regel verstößt, fügen Sie den entsprechenden Knoten der Liste der Token hinzu.
  5. Wenn Sie die Bearbeitung abgeschlossen haben, schließen Sie den Java-Editor.

Feedback
(C) Copyright IBM Corporation 2000, 2015. Alle Rechte vorbehalten.