# Change Method Signature Participants

###### Identifier:

org.eclipse.jdt.core.manipulation.changeMethodSignatureParticipants

###### Since:

3.4

###### Description:

This extension point is used to define change method signature refactoring participants.

This extension point supports the `<enablement>` element. The default variable is the `org.eclipse.jdt.core.IMethod` to be changed.
Defined variables for `<with>` expressions are:

- "element": type `org.eclipse.jdt.core.IMethod`; the method to be changed (same as the default variable)
- "affectedNatures": type `java.util.List<String>`; the natures of all projects affected by the refactoring
- "processorIdentifier": type `java.lang.String`; the id of the refactoring processor that will own the participant

###### Configuration Markup:

<!ELEMENT extension (changeMethodSignatureParticipant*)>

<!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 changeMethodSignatureParticipant (enablement?)>

<!ATTLIST changeMethodSignatureParticipant

id CDATA #REQUIRED

name CDATA #REQUIRED

class CDATA #REQUIRED>

- id - unique identifier for the change method signature participant.
- name - a human reabable name of the change method signature participant
- class - the name of the class that provides the participant implementation. Must extend `org.eclipse.jdt.core.refactoring.participants.ChangeMethodSignatureParticipant`

###### Examples:

The example below defines a change method signature participant. The participant is enabled if one of the project affected by the refactoring has a Java nature and when the method to be changed is in a JUnit test.

    <changeMethodSignatureParticipant
        id="org.eclipse.example.myChangeMethodSignatureParticipant"
        name="My Change Method Signature Participant"
        class="org.eclipse.example.MyChangeMethodSignatureParticipant">
        <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>
    </changeMethodSignatureParticipant>

###### API Information:

The contributed class must extend `org.eclipse.jdt.core.refactoring.participants.ChangeMethodSignatureParticipant`

Copyright (c) 2007, 2013 IBM Corporation and others.
This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html/ SPDX-License-Identifier: EPL-2.0