Refactorización de visores de vista previa de cambios

org.eclipse.ltk.ui.refactoring.changePreviewViewers

3.0

Este punto de extensión se utiliza para definir un visor especial capaz de presentar objetos de cambio. El lector del punto de extensión proporciona las siguientes variables predefinidas, a las que se puede acceder durante la evaluación de la expresión mediante el código <with variable="..."/>:

change
Objeto de cambio para el que debe presentarse una vista previa.

La variable por omisión que se utiliza durante la evaluación de la expresión está enlazada a la variable change.

<!ELEMENT extension (changePreviewViewer*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT changePreviewViewer (enablement)>

<!ATTLIST changePreviewViewer

id    CDATA #REQUIRED

class CDATA #REQUIRED>


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

Elemento raíz genérico. El elemento puede utilizarse dentro de un punto de extensión para definir su expresión de habilitación. Los hijos de una expresión de habilitación se combinan mediante el operador and.



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

Este elemento representa una operación NOT en el resultado de evaluar su expresión de subelemento.



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

Este elemento representa una operación AND en el resultado de evaluar todas sus expresiones de subelemento.



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

Este elemento representa una operación OR en el resultado de evaluar todas sus expresiones de subelemento.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Este elemento se utiliza para realizar una verificación de instanceof del objeto activo. La expresión devuelve EvaluationResult.TRUE si el tipo de objeto es un subtipo del tipo especificado por el valor del atributo. De lo contrario, devuelve EvaluationResult.FALSE.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Este elemento se utiliza para evaluar el estado de la propiedad del objeto activo. El conjunto de propiedades que pueden probarse puede ampliarse mediante el punto de extensión del aparato de prueba de propiedades. La expresión de prueba devuelve EvaluationResult.NOT_LOADED si el aparato de prueba de propiedades que realiza la prueba real todavía no está cargado.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Prueba una propiedad del sistema llamando al método System.getProperty y compara el resultado con el valor especificado a través del atributo value.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Este elemento se utiliza para realizar una verificación de equals del objeto activo. La expresión devuelve EvaluationResult.TRUE si el objeto es igual al valor especificado por el atributo value. De lo contrario, devuelve EvaluationResult.FALSE.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Este elemento se utiliza para probar el número de elementos de una colección.



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

<!ATTLIST with

variable CDATA #REQUIRED>

Este elemento cambia el objeto que debe inspeccionarse para todos los elementos hijo por el objeto al que hace referencia la variable especificada. Si la variable no puede resolverse, la expresión generará una excepción ExpressionException cuando la evalúe. Los hijos de una expresión se combinan mediante el operador and.



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

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

Este elemento cambia el objeto que debe inspeccionarse para todos los elementos hijo por el objeto al que hace referencia la variable especificada. Si la variable no puede resolverse, la expresión generará una excepción ExpressionException cuando la evalúe. Los hijos de una expresión se combinan mediante el operador and.



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

<!ATTLIST adapt

type CDATA #REQUIRED>

Este elemento se utiliza para adaptar el objeto activo al tipo especificado por el tipo de atributo. La expresión devuelve not loaded si el adaptador o el tipo al que se hace referencia todavía no se han cargado. Genera una expresión ExpressionException durante la evaluación si el nombre de tipo no existe. Los hijos de una expresión adapt se combinan mediante el operador and.



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

<!ATTLIST iterate

operator (or|and) >

Este elemento se utiliza para iterar una variable de tipo java.util.Collection. Si el objeto activo no es de tipo java.util.Collection, se genera una excepción ExpressionException durante la evaluación de la expresión.



El ejemplo siguiente contribuye aportando un visor de vista previa para los objetos de cambios de texto.
   

<extension point=

"org.eclipse.ltk.ui.refactoring.changePreviewViewers"

>

<changePreviewViewer class=

"org.eclipse.ltk.internal.ui.refactoring.TextChangePreviewViewer"

id=

"org.eclipse.ltk.internal.ui.refactoring.textChangePreviewViewer"

>

<enablement>

<instanceof value=

"org.eclipse.ltk.core.refactoring.TextChange"

/>

</enablement>

</changePreviewViewer>

</extension>

La clase con la que se contribuye debe ampliar la org.eclipse.ltk.ui.refactoring.IChangePreviewViewer.