Processador de Assistência Rápida

org.eclipse.jdt.ui.quickAssistProcessors

3.0

Este ponto de extensão permite incluir um processador de Assistência Rápida para oferecer novas Assistências Rápidas no editor Java. Ele suporta a tag enablement. As propriedades para teste são:
  • compilationUnit: tipo ICompilationUnit; a unidade de compilação com a qual a assistência rápida é aplicada
  • projectNatures: tipo Collection; naturezas de todos os projetos do projeto atual
  • sourceLevel: tipo String; a conformidade da origem do projeto atual
  • <!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)*>

    Um elemento de raiz genérico. O elemento pode ser utilizado dentro de um ponto de extensão para definir sua expressão de ativação. Os filhos de uma expressão de ativação são combinados utilizando o operador and.



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

    Esse elemento representa uma operação NOT como resultado da avaliação da expressão do subelemento.



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

    Esse elemento representa uma operação AND como resultado da avaliação de todas as expressões dos subelementos.



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

    Esse elemento representa uma operação OR como resultado da avaliação de todas as expressões do subelemento.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED>

    Este elemento é utilizado para executar uma instância de verificação do objeto em foco. A expressão retornará EvaluationResult.TRUE se o tipo do objeto for um subtipo do tipo especificado pelo valor do atributo. Caso contrário, EvaluationResult.FALSE será retornado.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property CDATA #REQUIRED

    args     CDATA #IMPLIED

    value    CDATA #IMPLIED>

    Esse elemento é utilizado para avaliar o estado da propriedade do objeto em foco. O conjunto de propriedades testáveis pode ser estendido utilizando o ponto de extensão do testador de propriedade. A expressão de teste retornará EvaluationResult.NOT_LOADED se o testador de propriedade que realiza o teste real ainda não estiver carregado.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED>

    Testa uma propriedade do sistema chamando o método System.getProperty e compara o resultado com o valor especificado por meio do atributo de valor.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED>

    Esse elemento é utilizado para executar uma verificação equals do objeto em foco. A expressão retorna EvaluationResult.TRUE se o objeto for igual ao valor fornecido pelo valor do atributo. Caso contrário, EvaluationResult.FALSE será retornado.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED>

    Esse elemento é utilizado para testar o número de elementos em uma coleta.



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

    <!ATTLIST with

    variable CDATA #REQUIRED>

    O elemento altera o objeto, a ser inspecionado para todos os seus elementos filho, para o objeto referido pela variável fornecida. Se a variável não puder ser resolvida, a expressão lançará um ExpressionException ao avaliá-la. Os filhos de uma expressão são combinados utilizando o operador and.



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

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED>

    O elemento altera o objeto, a ser inspecionado para todos os seus elementos filho, para o objeto referido pela variável fornecida. Se a variável não puder ser resolvida, a expressão lançará um ExpressionException ao avaliá-la. Os filhos de uma expressão são combinados utilizando o operador and.



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

    <!ATTLIST adapt

    type CDATA #REQUIRED>

    Este elemento é utilizado para adaptar o objeto em foco ao tipo especificado pelo tipo de atributo. A expressão será retornada sem carregar, se o adaptador ou o tipo referido ainda não estiver carregado. Isso lança um ExpressionException durante a avaliação se o nome do tipo não existir. Os filhos de uma expressão de adaptação são combinados utilizando o operador and.



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

    <!ATTLIST iterate

    operator (or|and) >

    Esse elemento é utilizado para repetir uma variável do tipo java.util.Collection. Se o objeto em foco não for do tipo java.util.Collection uma ExpressionException será lançada durante a avaliação da expressão.



    Segue um exemplo de uma contribuição do processador de Assistência Rápida:

     

    <extension point=

    "org.eclipse.jdt.ui.quickAssistProcessors"

    >

    <quickAssistProcessor id=

    "AdvancedQuickAssistProcessor"

    name=

    "Processador de Assistência Rápida Avançada"

    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>

    A classe de contribuição deve implementar org.eclipse.jdt.ui.text.java.IQuickAssistProcessor