Hurtig assistance-processor

org.eclipse.jdt.ui.quickAssistProcessors

3.0

Dette udvidelsespunkt gør det muligt at tilføje en Hurtig assistance-processor, så der kan tilbydes nye Hurtig assistance-funktioner i Java-editoren. Udvidelsespunktet understøtter koden enablement. Der er følgende egenskaber, der kan testes på:
  • compilationUnit: typen ICompilationUnit, den kompileringsenhed, Hurtig assistance skal anvendes til
  • projectNatures: typen Collection, alle det aktuelle projekts naturer
  • sourceLevel: typen String, det aktuelle projekts kildeoverholdelsesniveau
  • <!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)*>

    Et generisk rodelement. Elementet kan bruges i et udvidelsespunkt til at definere dets aktiveringsudtryk. Et aktiveringsudtryks underordnede kombineres vha. operatoren AND.



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

    Elementet repræsenterer en NOT-funktion på resultatet af evalueringen af dets underelementudtryk.



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

    Elementet repræsenterer en AND-funktion på resultatet af evalueringen af alle dets underelementudtryk.



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

    Elementet repræsenterer en OR-funktion på resultatet af evalueringen af alle dets underelementudtryk.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED>

    Elementet bruges til at udføre en instanceof-kontrol af det objekt, der fokuseres på. Udtrykket returnerer EvaluationResult.TRUE, hvis objektets type er en undertype af den type, der angives af value-attributten. Ellers returneres EvaluationResult.FALSE.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property CDATA #REQUIRED

    args     CDATA #IMPLIED

    value    CDATA #IMPLIED>

    Elementet bruges til at evaluere egenskabstilstanden for det objekt, der fokuseres på. Det sæt egenskaber, der kan testes på, kan udvides vha. udvidelsespunktet til egenskabstesteren. Udtrykket returnerer EvaluationResult.NOT_LOADED, hvis den egenskabstester, der skal udføre den egentlige test, ikke er indlæst endnu.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED>

    Tester en systemegenskab ved at kalde metoden System.getProperty og sammenligner resultatet med den værdi, der er angivet i value-attributten.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED>

    Elementet bruges til at udføre en equals-kontrol af det objekt, der fokuseres på. Udtrykket returnerer EvaluationResult.TRUE, hvis objektet er lig med den værdi, der angives af attributten value. Ellers returneres EvaluationResult.FALSE.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED>

    Elementet bruges til at teste antallet af elementer i en samling.



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

    <!ATTLIST with

    variable CDATA #REQUIRED>

    Elementet ændret det objekt, der skal undersøges, for alle dets underordnede elementer til det objekt, den angivne variabel refererer til. Hvis variablen ikke kan opløses, afsender udtrykket undtagelsen ExpressionException, når den evalueres. Et with-udtryks underordnede kombineres med operatoren AND.



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

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED>

    Elementet ændret det objekt, der skal undersøges, for alle dets underordnede elementer til det objekt, den angivne variabel refererer til. Hvis variablen ikke kan opløses, afsender udtrykket undtagelsen ExpressionException, når den evalueres. Et with-udtryks underordnede kombineres med operatoren AND.



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

    <!ATTLIST adapt

    type CDATA #REQUIRED>

    Elementet bruges til at tilpasse objektet i fokus til den type, der angives af attributtypen. Udtrykket returnerer NOT_LOADED, hvis adapteren eller den refererede type endnu ikke er indlæst. Det afsender undtagelsen ExpressionException under evaluering, hvis typenavnet slet ikke findes. Et adapt-udtryks underordnede kombineres med operatoren AND.



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

    <!ATTLIST iterate

    operator (or|and) >

    Elementet bruges til at gentage over en variabel af typen java.util.Collection. Hvis objektet i fokus ikke har typen java.util.Collection, afsendes undtagelsen ExpressionException under evaluering af udtrykket.



    Nedenfor vises et eksempel på en leveret processor til Hurtig assistance:

     

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

    Den leverede klasse skal implementere org.eclipse.jdt.ui.text.java.IQuickAssistProcessor.