public RefactoringParticipant[] getParticipants(RefactoringStatus status, RefactoringProcessor processor, Object element, RefactoringArguments arguments, IParticipantDesciptorFilter filter, String[] affectedNatures, SharableParticipants shared) {
public RefactoringParticipant[] getParticipants(RefactoringStatus status, RefactoringProcessor processor, Object element, RefactoringArguments arguments, IParticipantDescriptorFilter filter, String[] affectedNatures, SharableParticipants shared) {
	public RefactoringParticipant[] getParticipants(RefactoringStatus status, RefactoringProcessor processor, Object element, RefactoringArguments arguments, IParticipantDesciptorFilter filter, String[] affectedNatures, SharableParticipants shared) {		if (fParticipants == null)			init();				EvaluationContext evalContext= createEvaluationContext(processor, element, affectedNatures);		List result= new ArrayList();		for (Iterator iter= fParticipants.iterator(); iter.hasNext();) {			ParticipantDescriptor descriptor= (ParticipantDescriptor)iter.next();			if (!descriptor.isEnabled()) {				iter.remove();			} else {				try {					if (descriptor.matches(evalContext, filter)) {						RefactoringParticipant participant= shared.get(descriptor);						if (participant != null) {							((ISharableParticipant)participant).addElement(element, arguments);						} else {							participant= descriptor.createParticipant();							if (fParticipantClass.isInstance(participant)) {								if (participant.initialize(processor, element, arguments)) {									participant.setDescriptor(descriptor);									result.add(participant);									if (participant instanceof ISharableParticipant)										shared.put(descriptor, participant);								}							} else {								status.addError(Messages.format(									RefactoringCoreMessages.ParticipantExtensionPoint_participant_removed,  									descriptor.getName()));								RefactoringCorePlugin.logErrorMessage(									Messages.format(										RefactoringCoreMessages.ParticipantExtensionPoint_wrong_type, 										new String[] {descriptor.getName(), fParticipantClass.getName()}));								iter.remove();							}						}					}				} catch (CoreException e) {					status.addError(Messages.format(						RefactoringCoreMessages.ParticipantExtensionPoint_participant_removed,  						descriptor.getName()));					RefactoringCorePlugin.logRemovedParticipant(descriptor, e);					iter.remove();				}			}		}				return (RefactoringParticipant[])result.toArray(new RefactoringParticipant[result.size()]);	}