Pikakorjauskäsittelijä

org.eclipse.jdt.ui.quickFixProcessors

laajennuspiste versiosta 3.0 lähtien, handledMarkerTypes-elementti versiosta 3.2 lähtien

Tämän laajennuspisteen avulla voi lisätä pikakorjauskäsittelijän, joka mahdollistaa uusiaJava-häiriöiden pikakorjauksia.

Versiosta 3.2 lähtien laajennuspiste voi määrittää, mitä häiriömerkintöjen tyyppejä se voi käsitellä. Sen käsiteltäväksi annetaan vain kyseisen tyyppisiä häiriöitä. Jos käsiteltävää merkintätyyppiä ei määritetä, käsittelyohjelma saa käsiteltäväkseen vain tyyppien org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem ja org.eclipse.jdt.core.task (yhteensopiva versiota 3.2 edeltävien toimintojen kanssa) ongelmia.

Tämä laajennuspiste tukee enablement-tunnistetta. Testattavat ominaisuudet ovat:

  • compilationUnit: ICompilationUnit-tyyppi; käännösyksikkö, jonka yhteydessä pika-apu toteutetaan
  • projectNatures: Collection-tyyppi; kaikki nykyisen projektin projektiluonteet
  • sourceLevel: String-tyyppi; nykyisen projektin lähteen yhteensopivuus
  • <!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+)>

    Määrittää ne häiriöiden merkintätyypit, joita kyseinen pikakorjaukskäsittelijä voi käsitellä. Jos käsiteltävää merkintätyyppiä ei määritetä, käsittelyohjelma saa käsiteltäväkseen tyyppien org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem ja org.eclipse.jdt.core.task ongelmia.



    <!ELEMENT markerType EMPTY>

    <!ATTLIST markerType

    id CDATA #REQUIRED>


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

    Yleinen juurielementti. Elementtiä voidaan käyttää laajennuspisteen sisällä sen enablement-lausekkeen määritykseen. Enablement-lausekkeen aliobjektit yhdistetään käyttämällä and-operaattoria.



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

    Tämä elementti kuvaa sen alielementin lausekkeen laskennan tulokselle suoritettua NOT-toimintoa.



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

    Tämä elementti kuvaa sen kaikkien alielementtien lausekkeiden laskennan tulokselle suoritettua AND-toimintoa.



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

    Tämä elementti kuvaa sen kaikkien alielementtien lausekkeiden laskennan tulokselle suoritettua OR-toimintoa.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED>

    Tätä elementtiä käytetään suorittamaan tarkennetulle objektille instanceof-tarkistus. Lauseke palauttaa arvon EvaluationResult.TRUE, jos objektin tyyppi on määritteen arvon mukaisen tyypin alalaji. Muussa tapauksessa se palauttaa arvon EvaluationResult.FALSE.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property CDATA #REQUIRED

    args     CDATA #IMPLIED

    value    CDATA #IMPLIED>

    Tätä elementtiä käytetään laskemaan tarkennetun objektin ominaisuuksien tila. Testattavien ominaisuuksien joukon voi laajentaa käyttämällä ominaisuuksien testaustoiminnon laajennuspistettä. Testilauseke palauttaa arvon EvaluationResult.NOT_LOADED, jos varsinaisen testauksen suorittavaa ominaisuuksien testaustoimintoa ei ole vielä ladattu.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED>

    Testaa järjestelmän ominaisuuksia kutsumalla System.getProperty-metodin ja vertaa testin tulosta arvon määritteen avulla määritettyyn arvoon.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED>

    Tätä elementtiä käytetään suorittamaan tarkennetulle objektille equals-tarkistus. Lauseke palauttaa arvon EvaluationResult.TRUE, jos objekti on yhtä suuri kuin määritteen arvon mukainen arvo. Muussa tapauksessa se palauttaa arvon EvaluationResult.FALSE.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED>

    Tätä elementtiä käytetään testaamaan kokoelmassa olevien elementtien määrää.



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

    <!ATTLIST with

    variable CDATA #REQUIRED>

    ###Tämä elementti muuttaa objektin tarkastettavaksi kaikkien sellaisten alielementtien, joiden pääobjektiin annettu muuttuja viittaa, osalta. Jos muuttujaa ei voida tulkita, lauseke tuottaa ExpressionException-poikkeuksen laskiessaan sitä. With-lausekkeen aliobjektit yhdistetään käyttämällä and-operaattoria.



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

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED>

    ###Tämä elementti muuttaa objektin tarkastettavaksi kaikkien sellaisten alielementtien, joiden pääobjektiin annettu muuttuja viittaa, osalta. Jos muuttujaa ei voida tulkita, lauseke tuottaa ExpressionException-poikkeuksen laskiessaan sitä. With-lausekkeen aliobjektit yhdistetään käyttämällä and-operaattoria.



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

    <!ATTLIST adapt

    type CDATA #REQUIRED>

    Tätä elementtiä käytetään sovittamaan tarkennettu objekti määritteen tyypin avulla määritettyyn tyyppiin. Lauseke palauttaa arvon ei ole ladattu, jos joko sovitinta tai viitattua tyyppiä ei ole vielä ladattu. Se tuottaa ExpressionException-poikkeuksen laskennan aikana, jos tyypin nimeä ei ole lainkaan. Adapt-lausekkeen aliobjektit yhdistetään käyttämällä and-operaattoria.



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

    <!ATTLIST iterate

    operator (or|and) >

    Tätä elementtiä käytetään iteroimaan java.util.Collection-tyypin muuttujia. Jos tarkennettu objekti ei ole tyyppiä java.util.Collection, lauseketta laskettaessa tuotetaan ExpressionException-poikkeus.



    Seuraavassa on esimerkki pikakorjauskäsittelijän lisäyksestä:

     

    <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>

    Lisätyn luokan on toteutettava org.eclipse.jdt.ui.text.java.IQuickFixProcessor-rajapinta