Hurtigrettelseprosessor

org.eclipse.jdt.ui.quickFixProcessors

Utvidelsespunkt siden 3.0. Element handledMarkerTypes siden 3.2.

Dette utvidelsespunktet gjør det mulig å legge til en hurtighjelpprosessor som tilbyr nye hurtigrettelser for Java-problemer.

Fra og med 3.2 kan en utvidelse angi hvilke typer problemmerkere den kan behandle. Den får bare problemer av disse typene til behandling. Hvis ingen behandlede merketyper er oppgitt, får prosessoren bare problemer av typene org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem og org.eclipse.jdt.core.task.

Dette utvidelsespunktet støtter koden enablement. Egenskaper for testing er:

  • compilationUnit: type ICompilationUnit; kompileringsenheten hurtighjelpen brukes på
  • projectNatures: type Collection; alle prosjektnaturer til gjeldende prosjekt
  • sourceLevel: type String; kildesamsvaret for gjeldende prosjekt
  • <!ELEMENT extension (quickFixProcessor*)>

    <!ATTLIST extension

    point CDATA #REQUIRED

    id    CDATA #IMPLIED

    name  CDATA #IMPLIED>


    <!ELEMENT quickFixProcessor (enablement , handledMarkerTypes*)>

    <!ATTLIST quickFixProcessor

    id                  CDATA #REQUIRED

    name                CDATA #IMPLIED

    class               CDATA #REQUIRED

    requiredSourceLevel CDATA #IMPLIED>


    <!ELEMENT handledMarkerTypes (markerType+)>

    Angir merketypene til problemene denne hurtigrettelseprosessoren kan behandle. Hvis ingen behandlede merketyper er oppgitt, får denne prosessoren problemer av typene org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem og org.eclipse.jdt.core.task.



    <!ELEMENT markerType EMPTY>

    <!ATTLIST markerType

    id CDATA #REQUIRED>


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

    Et generisk rotelement. Elementet kan brukes i et utvidelsespunkt for å definere det tilhørende aktiveringsuttrykket. Underordnede til et aktiveringsuttrykk kombineres med operatoren AND.



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

    Dette elementet representerer en NOT-operasjon på resultatet av evalueringen av underelementuttrykket.



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

    Dette elementet representerer en AND-operasjon på resultatet av evalueringen av alle de tilhørende delelementuttrykkene.



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

    Dette elementet representerer en OR-operasjon på resultatet av evalueringen av alle de tilhørende delelementuttrykkene.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED>

    Dette elementet brukes til å utføre en instanceof-kontroll av objektet i fokus. Uttrykket returnerer EvaluationResult.TRUE hvis objektets type er en subtype for typen som er oppgitt med value-attributtet. Ellers returneres EvaluationResult.FALSE.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property CDATA #REQUIRED

    args     CDATA #IMPLIED

    value    CDATA #IMPLIED>

    Dette elementet brukes til å evaluere egenskapstilstanden til objektet i fokus. Settet med testbare egenskaper kan utvides ved hjelp av utvidelsespunktet for egenskapstesting. Restuttrykket returnerer EvaluationResult.NOT_LOADED hvis egenskapstesteren som utfører den faktiske testingen, ikke er lastet inn ennå.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED>

    Tester en systemegenskap ved å sende kall til metoden System.getProperty, og sammenlikner resultatet med verdien som er oppgitt ved hjelp av value-attributtet.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED>

    Dette elementet brukes til å utføre en equals-kontroll av objektet i fokus. Uttrykket returnerer EvaluationResult.TRUE hvis objektet er lik verdien som er oppgitt av value-attributtet. Ellers returneres EvaluationResult.FALSE.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED>

    Dette elementet brukes til å teste antallet elementer i en samling.



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

    <!ATTLIST with

    variable CDATA #REQUIRED>

    Dette elementet endrer objektet som skal inspiseres, for alle underordnede elementer til objektet det refereres til med den oppgitte variabelen. Hvis variabelen ikke kan behandles, vil uttrykket kaste et ExpressionException ved evaluering. Underordnede til et with-uttrykk kombineres ved hjelp av operatoren AND.



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

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED>

    Dette elementet endrer objektet som skal inspiseres, for alle underordnede elementer til objektet det refereres til med den oppgitte variabelen. Hvis variabelen ikke kan behandles, vil uttrykket kaste et ExpressionException ved evaluering. Underordnede til et with-uttrykk kombineres ved hjelp av operatoren AND.



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

    <!ATTLIST adapt

    type CDATA #REQUIRED>

    Dette elementet brukes til å tilpasse objektet i fokus til typen som er oppgitt av attributtet type. Uttrykket returnerer ikke lastet inn hvis adapteren eller typen som det refereres til, ikke er lastet inn. Det kaster et ExpressionException under evaluering hvis typenavnet ikke finnes i det hele tatt. Underordnede til et adapt-uttrykk kombineres ved hjelp av operatoren AND.



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

    <!ATTLIST iterate

    operator (or|and) >

    Dette elementet brukes til å gjenta en variabel som er av typen java.util.Collection. Hvis objektet i fokus ikke er av typen java.util.Collection, kastes et ExpressionException ved evaluering av uttrykket.



    Her er et eksempel på prosessorbidrag for hurtigrettelse:

     

    <extension point=

    "org.eclipse.jdt.ui.quickFixProcessors"

    >

    <quickFixProcessor id=

    "AdvancedQuickFixProcessor"

    name=

    "Advanced Quick Fix Processor"

    requiredSourceLevel=

    "1.5"

    class=

    "com.example.AdvancedQuickFixProcessor"

    >

    <handledMarkerTypes>

    <markerType id=

    "org.eclipse.myplugin.audits"

    />

    </handledMarkerTypes>

    <enablement>

    <with variable=

    "projectNatures"

    >

    <iterate operator=

    "or"

    >

    <equals value=

    "org.eclipse.jdt.core.javanature"

    />

    </iterate>

    </with>

    </enablement>

    </quickFixProcessor>

    </extension>

    Klassen som bidras, må implementere org.eclipse.jdt.ui.java.IQuickFixProcessor