Processador de Correção Rápida

org.eclipse.jdt.ui.quickFixProcessors

3.0

Este ponto de extensão permite incluir um processador de Correção Rápida para oferecer novas Correções Rápidas para problemas Java.

<!ELEMENT extension (quickFixProcessor*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT quickFixProcessor (enablement)>

<!ATTLIST quickFixProcessor

id    CDATA #REQUIRED

name  CDATA #IMPLIED

class CDATA #IMPLIED>


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

Um elemento 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 de suas expressões de subelementos.



<!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 suas expressões de 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 suas expressões de subelementos.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Esse elemento é utilizado para executar uma verificação instanceof do objeto em foco. A expressão retornará EvaluationResult.TRUE se o tipo de 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 capazes de serem testadas pode ser estendido utilizando o ponto de extensão do testador da propriedade. Uma expressão test retornará EvaluationResult.NOT_LOADED se o testador da propriedade que executa 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 pelo 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 retornará 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>

Esse elemento altera o objeto a ser inspecionado para todos os seus elementos filho como o objeto referido pela variável fornecida. Se a variável não puder ser resolvida, então a expressão lançará uma ExpressionException ao avaliá-la. Os filhos de uma expressão with 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>

Esse elemento altera o objeto a ser inspecionado para todos os seus elementos filho como o objeto referido pela variável fornecida. Se a variável não puder ser resolvida, então a expressão lançará uma ExpressionException ao avaliá-la. Os filhos de uma expressão with 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>

Esse elemento é utilizado para adaptar o objeto em foco ao tipo especificado pelo tipo de atributo. A expressão retornará não carregado se o adaptador ou o tipo referido ainda não estiver carregado. Ela lançará uma ExpressionException durante a avaliação se o nome do tipo ainda não existir. Os filhos de uma expressão adapt 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 iterar sobre uma variável do tipo java.util.Collection. Se o objeto em foco não for do tipo java.util.Collection, então uma ExpressionException será lançada ao avaliar a expressão.



Segue um exemplo de uma contribuição do processador de Correção Rápida:

 

<extension point=

"org.eclipse.jdt.ui.quickFixProcessors"

>

<quickFixProcessor id=

"AdvancedQuickFixProcessor"

name=

"Processador de Correção Rápida Avançada"

class=

"com.example.AdvancedQuickFixProcessor"

>

</quickFixProcessor>

</extension>

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