org.eclipse.ltk.core.refactoring.participants

## Interface ISharableParticipant

    public interface ISharableParticipant

A tagging interface to share a concrete `RefactoringParticipant` instance across multiple elements to be refactored. Consider the example of moving more than one file: if a corresponding move participant is not tagged as a `ISharableParticipant` then a separate instance of a participant is created for every file to be moved. If the participant is marked as shared then only one instance is created and the participant is responsible to handle all files to be moved.

The first element to be refactored will be added to the participant via the participant specific `initialize(Object element)` method. All subsequent elements will be added via the generic `addElement(Object, RefactoringArguments)` method. Implementors of this interface can assume that the refactoring arguments passed to the `addElement` method conform to the participant. For example the arguments are of type `MoveArguments` if this interface is mixed into a move participant.

Clients may implement this interface to tag participants as shared.

Since:
  3.0
See Also:
  `RefactoringParticipant`

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `addElement(Object element, RefactoringArguments arguments)` Adds the given element and argument to the refactoring participant.

### Method Detail

#### addElement

    void addElement(Object element,
                    RefactoringArguments arguments)

Adds the given element and argument to the refactoring participant.

Parameters:
  `element` - the element to add
  `arguments` - the corresponding arguments