#
Move Participants

###### Identifier:

org.eclipse.ltk.core.refactoring.moveParticipants

###### Since:

3.0

###### Description:

This extension point is used to define refactoring move participants. The reader of the expression provides the following predefined variables which can be referenced via the <with variable="..."> expression element:

- Object element: the element to be moved
- List<String> affectedNatures: a list containing the natures of the projects affected by the refactoring
- String processorId: the id of the refactoring processor that will own the participant.

The default variable used during expression evaluation is bound to the element variable.

###### Configuration Markup:

<!ELEMENT extension (moveParticipant*)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT moveParticipant (enablement)>

<!ATTLIST moveParticipant

id CDATA #REQUIRED

name CDATA #REQUIRED

class CDATA #REQUIRED>

- id - unique identifier for the move participant.
- name - a human reabable name of the move participant
- class - the name of the class that provides the participant implementation.

###### Examples:

The example below defines a type move participant. The participant is enabled if one of the project affected by the refactoring has a Java nature and when the type to be moved is a JUnit test.

    <moveParticipant
        id="org.eclipse.jdt.junit.moveTypeParticipant"
        name="%MoveTypeParticipant.name"
        class="org.eclipse.jdt.internal.junit.ui.TypeMoveParticipant">
        <enablement>
          <with variable="affectedNatures">
            <iterate operator="or">
              <equals value="org.eclipse.jdt.core.javanature"/>
            </iterate>
          </with>
          <with variable="element">
            <instanceof value="org.eclipse.jdt.core.IType"/>
            <test property="org.eclipse.jdt.junit.isTest"/>
          </with>
        </enablement>
    </moveParticipant>

###### API Information:

The contributed class must extend `org.eclipse.ltk.core.refactoring.participants.MoveParticipant`

Copyright (c) 2001, 2004 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html