Procesor szybkiej asysty

org.eclipse.jdt.ui.quickAssistProcessors

3.0

Ten punkt rozszerzenia umożliwia dodanie procesora szybkiej asysty udostępniającego nowe podpowiedzi szybkiej asysty w edytorze Java. Ten punkt rozszerzenia obsługuje znacznik enablement. Właściwości do testowania są następujące:
  • compilationUnit: wpisz ICompilationUnit; jednostka kompilacji, na której jest stosowana szybka asysta
  • projectNatures: wpisz Collection; wszystkie natury bieżącego projektu
  • sourceLevel: wpisz String; zgodność kodu źródłowego bieżącego projektu
  • <!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)*>

    Ogólny element główny. Element może być używany wewnątrz punktu rozszerzenia, aby zdefiniować to wyrażenie enablement. Elementy potomne wyrażenia enablement są składane za pomocą operatora and.



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

    Ten element reprezentuje operację NOT wykonywaną na wyniku wartościowania wyrażenia stanowiącego jego podelement.



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

    Ten element reprezentuje operację AND wykonywaną na wyniku wartościowania wyrażeń stanowiących wszystkie jego podelementy.



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

    Ten element reprezentuje operację OR wykonywaną na wyniku wartościowania wyrażeń stanowiących wszystkie jego podelementy.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED>

    Ten element służy do wykonywania sprawdzania instanceof obiektu aktywnego. Wyrażenie zwraca wartość EvaluationResult.TRUE, jeśli typ obiektu jest podtypem typu określonego przez wartość atrybutu. W przeciwnym razie zwracana jest wartość EvaluationResult.FALSE.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property CDATA #REQUIRED

    args     CDATA #IMPLIED

    value    CDATA #IMPLIED>

    Ten element służy do wartościowania stanu właściwości obiektu aktywnego. Zestaw właściwości możliwych do testowania można rozszerzyć, korzystając z punktu rozszerzenia testera właściwości. Wyrażenie testu zwraca wartość EvaluationResult.NOT_LOADED, jeśli tester właściwości wykonujący rzeczywiste testowanie nie jest jeszcze załadowany.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED>

    Testuje właściwość systemową, wywołując metodę System.getProperty i porównując wynik z wartością określoną przez atrybut wartości.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED>

    Ten element służy do wykonywania sprawdzania równości obiektu aktywnego. Wyrażenie zwraca wartość EvaluationResult.TRUE, jeśli obiekt jest równy wartości podanej przez wartość atrybutu. W przeciwnym razie zwracana jest wartość EvaluationResult.FALSE.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED>

    Ten element służy do testowania liczby elementów w kolekcji.



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

    <!ATTLIST with

    variable CDATA #REQUIRED>

    Ten element zmienia obiekt, w którym mają zostać zbadane wszystkie jego elementy potomne, na obiekt, do którego odwołuje się dana zmienna. Jeśli zmiennej nie można przetłumaczyć, wyrażenie zwróci wyjątek ExpressionException podczas wartościowania go. Elementy potomne wyrażenia with są składane za pomocą operatora AND.



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

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED>

    Ten element zmienia obiekt, w którym mają zostać zbadane wszystkie jego elementy potomne, na obiekt, do którego odwołuje się dana zmienna. Jeśli zmiennej nie można przetłumaczyć, wyrażenie zwróci wyjątek ExpressionException podczas wartościowania go. Elementy potomne wyrażenia with są składane za pomocą operatora AND.



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

    <!ATTLIST adapt

    type CDATA #REQUIRED>

    Ten element służy do adaptowania obiektu aktywnego do typu określonego przez typ atrybutu. Wyrażenie zwraca komunikat o niezaładowaniu, jeśli adapter lub typ, do którego się odwołuje element, nie jest jeszcze załadowany. Jeśli nazwa typu w ogóle nie istnieje, zwraca wyjątek ExpressionException podczas wartościowania. Elementy potomne wyrażenia adapt są składane za pomocą operatora AND.



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

    <!ATTLIST iterate

    operator (or|and) >

    Ten element służy do iterowania na zmiennej, która jest typu java.util.Collection. Jeśli obiekt aktywny jest typu innego niż java.util.Collection, podczas wartościowania wyrażenia zostanie zwrócony wyjątek ExpressionException.



    Poniżej przedstawiono przykład dodania procesora szybkiej asysty:

     

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

    Dodana klasa musi implementować interfejs org.eclipse.jdt.ui.text.java.IQuickAssistProcessor.