Prozessor für Schnellunterstützung

org.eclipse.jdt.ui.quickAssistProcessors

3.0

Mit diesem Erweiterungspunkt kann ein Prozessor für Schnellunterstützung hinzugefügt werden, um im Java-Editor neue Schnellunterstützung zur Verfügung zu stellen. Dieser Erweiterungspunkt unterstützt die Markierung enablement. Dies kann auf folgenden Eigenschaften getestet werden:
  • compilationUnit: type ICompilationUnit; die Kompiliereinheit, auf die die Schnellunterstützung angewendet wird
  • projectNatures: type Collection; alle Projektgattungen des aktuellen Projekts
  • sourceLevel: type String; die Quellenkonformität des aktuellen Projekts
  • <!ELEMENT extension (quickAssistProcessor*)>

    <!ATTLIST extension

    point CDATA #REQUIRED

    id    CDATA #IMPLIED

    name  CDATA #IMPLIED>


    <!ELEMENT quickAssistProcessor (enablement)>

    <!ATTLIST quickAssistProcessor

    id                  CDATA #REQUIRED

    name                CDATA #IMPLIED

    class               CDATA #IMPLIED

    requiredSourceLevel CDATA #IMPLIED>


    <!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    Ein generisches Stammelement. Das Element kann innerhalb eines Erweiterungspunkts verwendet werden, um den entsprechenden Ausdruck 'enablemenent' zu definieren. Die untergeordneten Elemente eines Ausdrucks 'enablement' werden durch den Einsatz des Operators 'and' kombiniert.



    <!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>

    Dieses Element stellt eine Operation NOT für das Ergebnis der Auswertung seiner Unterelementausdrucks dar.



    <!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    Dieses Element stellt eine Operation AND für das Auswertungsergebnis all seiner Unterelementausdrücke dar.



    <!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    Dieses Element stellt eine Operation OR für das Auswertungsergebnis all seiner Unterelementausdrücke dar.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED>

    Dieses Element wird zur Durchführung einer Prüfung des Typs 'instanceof' für das betrachtete Objekt eingesetzt. Der Ausdruck gibt 'EvaluationResult.TRUE' zurück, wenn es sich bei dem Objekttyp um einen Untertyp des im Attributwert angegebenen Typs handelt. Andernfalls wird 'EvaluationResult.FALSE' zurückgegeben.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property CDATA #REQUIRED

    args     CDATA #IMPLIED

    value    CDATA #IMPLIED>

    Dieses Element wird zur Auswertung des Eigenschaftszustands des betrachteten Objekts verwendet. Die Gruppe der Eigenschaften, die getestet werden können, kann mit Hilfe des Erweiterungspunkts für Testfunktionen für Eigenschaften erweitert werden. Der Testausdruck gibt 'EvaluationResult.NOT_LOADED' zurück, wenn der Eigenschaftstester, der den eigentlichen Test durchführt, noch nicht geladen ist.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED>

    Testet eine Systemeigenschaft durch Aufruf der Methode 'System.getProperty' und vergleicht das Ergebnis mit dem Wert, der durch das Wertattribut angegeben wird.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED>

    Dieses Element wird zur Durchführung einer Prüfung des Typs 'equals' für das betrachtete Objekt verwendet. Der Ausdruck gibt 'EvaluationResult.TRUE' zurück, wenn das Objekt mit dem Wert übereinstimmt, der von dem Attributwert bereitgestellt wird. Andernfalls wird 'EvaluationResult.FALSE' zurückgegeben.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED>

    Dieses Element wird zum Testen der Anzahl der Elemente in einer Objektgruppe verwendet.



    <!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    <!ATTLIST with

    variable CDATA #REQUIRED>

    Dieses Element ändert das Objekt, das für alle seine untergeordneten Elemente untersucht werden muss, in das Objekt, auf das sich die angegebene Variable bezieht. Kann die Variable nicht aufgelöst werden, löst der Ausdruck bei der Auswertung der Variablen die Ausnahmebedingung 'ExpressionException' aus. Die untergeordneten Elemente eines Ausdrucks 'with' werden mit Hilfe des Operators 'and' kombiniert.



    <!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED>

    Dieses Element ändert das Objekt, das für alle seine untergeordneten Elemente untersucht werden muss, in das Objekt, auf das sich die angegebene Variable bezieht. Kann die Variable nicht aufgelöst werden, löst der Ausdruck bei der Auswertung der Variablen die Ausnahmebedingung 'ExpressionException' aus. Die untergeordneten Elemente eines Ausdrucks 'with' werden mit Hilfe des Operators 'and' kombiniert.



    <!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    <!ATTLIST adapt

    type CDATA #REQUIRED>

    Dieses Element wird zur Anpassung des betrachteten Objektes an den Typ, der durch den Attributtyp angegeben wird, eingesetzt. Der Ausdruck gibt NOT_LOADED (nicht geladen) zurück, wenn entweder der Adapter oder der Typ, auf den verwiesen wird, noch nicht geladen ist. Er gibt während der Auswertung 'ExpressionException' aus, wenn der Typname nicht existiert. Die untergeordneten Elemente eines Ausdrucks 'adapt' werden mit Hilfe des Operators 'and' kombiniert.



    <!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    <!ATTLIST iterate

    operator (or|and) >

    Dieses Element wird zur Iteration einer Variable des Typs 'java.util.Collection' eingesetzt. Wenn das betrachtete Objekt nicht dem Typ 'java.util.Collection' entspricht, wird 'ExpressionException' während der Auswertung des Ausdrucks ausgegeben.



    Das nachstehende Beispiel zeigt die Bereitstellung eines Prozessors für Schnellunterstützung:

     

    <extension point=

    "org.eclipse.jdt.ui.quickAssistProcessors"

    >

    <quickAssistProcessor id=

    "AdvancedQuickAssistProcessor"

    name=

    "Advanced Quick Assist Processor"

    requiredSourceLevel=

    "1.5"

    class=

    "com.example.AdvancedQuickAssistProcessor"

    >

    </quickAssistProcessor>

    <enablement>

    <with variable=

    "projectNatures"

    >

    <iterate operator=

    "or"

    >

    <equals value=

    "org.eclipse.jdt.core.javanature"

    />

    </iterate>

    </with>

    </enablement>

    </extension>

    Die bereitgestellte Klasse muss org.eclipse.jdt.ui.java.IQuickAssistProcessor implementieren.