Participantes de Cópia

org.eclipse.ltk.core.refactoring.copyParticipants

3.1

Este ponto de extensão é utilizado para definir a recriação de participantes de cópias. A leitora da expressão fornece as seguintes variáveis predefinidas que podem ser referidas por meio do elemento da expressão <with variable="...">: A variável padrão utilizada durante a avaliação da expressão está ligada à variável do elemento.

<!ELEMENT extension (copyParticipant*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT copyParticipant (enablement)>

<!ATTLIST copyParticipant

id              CDATA #REQUIRED

name            CDATA #REQUIRED

class           CDATA #REQUIRED

processOnCancel 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 para ser inspecionado para obter todo seu elemento filho para o objeto referenciado pela determinada variável. 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 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 para ser inspecionado para obter todo seu elemento filho para o objeto referenciado pela determinada variável. 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 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. Ele lançará um ExpressionException durante a avaliação se o nome do tipo não existir ainda. 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.



O exemplo a seguir define um participante para copiar arquivos. O participante será ativado se um dos projetos afetados pela recriação tiver uma natureza Java.

<copyParticipant id=

"org.eclipse.samples.copyParticipant"

name=

"%CopyFileParticipant.name"

class=

"org.eclipse.samples.CopyFileParticipant"

>

<enablement>

<with variable=

"affectedNatures"

>

<iterate operator=

"or"

>

<equals value=

"org.eclipse.jdt.core.javanature"

/>

</iterate>

</with>

<with variable=

"element"

>

<instanceof value=

"org.eclipse.core.resources.IFile"

/>

</with>

</enablement>

</copyParticipant>

A classe contribuída deve estender o org.eclipse.ltk.core.refactoring.participants.CopyParticipant