return new JavaRefactoringDescriptor(ID_CHANGE_METHOD_SIGNATURE, project, Messages.format(RefactoringCoreMessages.ChangeSignatureRefactoring_descriptor_description, new String[] { getOldMethodSignature(), getNewMethodSignature()}), getComment(), arguments, flags);
JavaRefactoringDescriptor descriptor= new JavaRefactoringDescriptor(ID_CHANGE_METHOD_SIGNATURE, project, Messages.format(RefactoringCoreMessages.ChangeSignatureRefactoring_descriptor_description, new String[] { getOldMethodSignature(), getNewMethodSignature()}), getComment(), arguments, flags); return new RefactoringChangeDescriptor(descriptor);
	public Change createChange(IProgressMonitor pm) {		pm.beginTask("", 1); //$NON-NLS-1$		try {			return new DynamicValidationStateChange(RefactoringCoreMessages.ChangeSignatureRefactoring_restructure_parameters, fChangeManager.getAllChanges()) {				public final ChangeDescriptor getDescriptor() {					final Map arguments= new HashMap();					arguments.put(JavaRefactoringDescriptor.INPUT, fMethod.getHandleIdentifier());					arguments.put(JavaRefactoringDescriptor.NAME, fMethodName);					arguments.put(ATTRIBUTE_DELEGATE, Boolean.valueOf(fDelegateUpdating).toString());					arguments.put(ATTRIBUTE_DEPRECATE, Boolean.valueOf(fDelegateDeprecation).toString());					if (fReturnTypeInfo.isTypeNameChanged())						arguments.put(ATTRIBUTE_RETURN, fReturnTypeInfo.getNewTypeName());					try {						if (!isVisibilitySameAsInitial())							arguments.put(ATTRIBUTE_VISIBILITY, new Integer(fVisibility).toString());					} catch (JavaModelException exception) {						JavaPlugin.log(exception);					}					int count= 1;					for (final Iterator iterator= fParameterInfos.iterator(); iterator.hasNext();) {						final ParameterInfo info= (ParameterInfo) iterator.next();						final StringBuffer buffer= new StringBuffer(64);						buffer.append(info.getOldTypeName());						buffer.append(" "); //$NON-NLS-1$						buffer.append(info.getOldName());						buffer.append(" "); //$NON-NLS-1$						buffer.append(info.getOldIndex());						buffer.append(" "); //$NON-NLS-1$						buffer.append(info.getNewTypeName());						buffer.append(" "); //$NON-NLS-1$						buffer.append(info.getNewName());						buffer.append(" "); //$NON-NLS-1$						buffer.append(info.isDeleted());						arguments.put(ATTRIBUTE_PARAMETER + count, buffer.toString());						final String value= info.getDefaultValue();						if (value != null && !"".equals(value)) //$NON-NLS-1$							arguments.put(ATTRIBUTE_DEFAULT + count, value);						count++;					}					count= 1;					for (final Iterator iterator= fExceptionInfos.iterator(); iterator.hasNext();) {						final ExceptionInfo info= (ExceptionInfo) iterator.next();						arguments.put(JavaRefactoringDescriptor.ELEMENT + count, info.getType().getHandleIdentifier());						arguments.put(ATTRIBUTE_KIND + count, new Integer(info.getKind()).toString());						count++;					}					String project= null;					IJavaProject javaProject= fMethod.getJavaProject();					if (javaProject != null)						project= javaProject.getElementName();					int flags= JavaRefactorings.JAR_IMPORTABLE | RefactoringDescriptor.STRUCTURAL_CHANGE;					try {						if (!Flags.isPrivate(fMethod.getFlags()))							flags|= RefactoringDescriptor.MULTI_CHANGE;					} catch (JavaModelException exception) {						JavaPlugin.log(exception);					}					try {						return new JavaRefactoringDescriptor(ID_CHANGE_METHOD_SIGNATURE, project, Messages.format(RefactoringCoreMessages.ChangeSignatureRefactoring_descriptor_description, new String[] { getOldMethodSignature(), getNewMethodSignature()}), getComment(), arguments, flags);					} catch (JavaModelException exception) {						JavaPlugin.log(exception);						return null;					}				}			};		} finally {			pm.done();			clearManagers();		}	}