Teilnehmer für Löschung

org.eclipse.ltk.core.refactoring.deleteParticipants

3.0

An diesem Erweiterungspunkt können Refactoringteilnehmer für das Löschen von Elementen definiert werden. Das Eingabeprogramm des Ausdrucks stellt die folgenden vordefinierten Variablen zur Verfügung, auf die über das Ausdruckselement <with variable="..."> verwiesen werden kann: Die während der Auswertung des Ausdrucks verwendete Standardvariable wird an die Elementvariable gebunden.

<!ELEMENT extension (deleteParticipant*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT deleteParticipant (enablement)>

<!ATTLIST deleteParticipant

id    CDATA #REQUIRED

name  CDATA #REQUIRED

class CDATA #REQUIRED>


<!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 enablement-Ausdruck zu definieren. Die untergeordneten Elemente eines enablement-Ausdrucks werden mit Hilfe 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 seines 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 Ergebnis der Auswertung aller 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 Ergebnis der Auswertung aller seiner Unterelementausdrücke dar.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Dieses Element wird verwendet, um eine instanceof-Prüfung für das Objekt im Fokus auszuführen. Der Ausdruck gibt 'EvaluationResult.TRUE' zurück, wenn es sich bei dem Objekttyp um einen Untertyp des im Attribut 'value' angegebenen Typs handelt. Ansonsten wird 'EvaluationResult.FALSE' zurückgegeben.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Dieses Element wird verwendet, um den Eigenschaftsstatus des Objekts im Fokus zu auszuwerten. Die Gruppe der Eigenschaften, die getestet werden können, kann mit Hilfe des Erweiterungspunktes 'propertyTesters' für Testfunktionen für Eigenschaften erweitert werden. Der Ausdruck 'test' gibt 'EvaluationResult.NOT_LOADED' zurück, wenn die Testfunktion für Eigenschaften, die den Test durchführt, noch nicht geladen ist.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Testet eine Systemeigenschaft, indem die Methode 'System.getProperty' aufgerufen wird und das Ergebnis mit dem im Attribut 'value' angegebenen Wert verglichen wird.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Dieses Element wird verwendet, um eine equals-Prüfung für das Objekt im Fokus auszuführen. Der Ausdruck gibt 'EvaluationResult.TRUE' zurück, wenn das Objekt gleich dem Wert im Attribut 'value' ist. Ansonsten wird 'EvaluationResult.FALSE' zurückgegeben.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Dieses Element wird verwendet, um die Anzahl der Elemente in einer Gruppe zu testen.



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

<!ATTLIST with

variable CDATA #REQUIRED>

Dieses Element ändert das zu untersuchende Objekt für alle seine untergeordneten Elemente in das Objekt, auf das mit der betreffenden Variable verwiesen wird. 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 zu untersuchende Objekt für alle seine untergeordneten Elemente in das Objekt, auf das mit der betreffenden Variable verwiesen wird. 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 verwendet, um das Objekt im Fokus an den Typ anzupassen, der im Attribut 'type' angegeben ist. Der Ausdruck gibt NOT_LOADED (nicht geladen) zurück, wenn entweder der Adapter oder der Typ, auf den verwiesen wird, noch nicht geladen ist. Während der Auswertung wird die Ausnahmebedingung 'ExpressionException' ausgelöst, wenn der Tpname überhaupt 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 verwendet, um über eine Variable vom Typ 'java.util.Collection' zu iterieren. Ist das Objekt im Fokus nicht vom Typ 'java.util.Collection', wird während der Auswertung des Ausdrucks die Ausnahmebedingung 'ExpressionException' ausgelöst.



Das nachstehende Beispiel definiert einen Löschungsteilnehmer. Der Teilnehmer wird aktiviert, wenn eines der Projekte, auf die sich das Refactoring auswirkt, eine Java-Gattung aufweist und das zu löschende Element vom Typ 'ICompilationUnit' ist.

<deleteParticipant id=

"org.myCompany.deleteParticipant"

name=

"%DeleteParticipant.name"

class=

"org.myCompany.Participant"

>

<enablement>

<with variable=

"affectedNatures"

>

<iterate operator=

"or"

>

<equals value=

"org.eclipse.jdt.core.javanature"

/>

</iterate>

</with>

<with variable=

"element"

>

<instanceof value=

"org.eclipse.jdt.core.ICompilationUnit"

/>

</with>

</enablement>

</deleteParticipant>

Die bereitgestellte Klasse muss org.eclipse.ltk.core.refactoring.participants.DeleteParticipant erweitern.