arguments.put(ATTRIBUTE_SELECTION, new Integer(fSelectionStart).toString() + " " + new Integer(fSelectionLength).toString());
arguments.put(JavaRefactoringDescriptor.SELECTION, new Integer(fSelectionStart).toString() + " " + new Integer(fSelectionLength).toString());
	public Change createChange(IProgressMonitor pm) throws CoreException {		if (fDeleteSource && fCurrentMode == Mode.INLINE_ALL) {			TextChange change= fChangeManager.get(fSourceProvider.getCompilationUnit());			TextEdit delete= fSourceProvider.getDeleteEdit();			TextEditGroup description= new TextEditGroup(				RefactoringCoreMessages.InlineMethodRefactoring_edit_delete, new TextEdit[] { delete }); 			TextEdit root= change.getEdit();			if (root != null) {				// TODO instead of finding the right insert position the call inliner should				// resuse the AST & rewriter of the source provide and we should rewrite the				// whole AST at the end. However, since recursive calls aren't allowed there				// shouldn't be a text edit overlap.				// root.addChild(delete);				TextChangeCompatibility.insert(root, delete);			} else {				change.setEdit(delete);			}			change.addTextEditGroup(description);		}		return new DynamicValidationStateChange(RefactoringCoreMessages.InlineMethodRefactoring_edit_inlineCall, fChangeManager.getAllChanges()) {					public final ChangeDescriptor getDescriptor() {				final Map arguments= new HashMap();				arguments.put(JavaRefactoringDescriptor.INPUT, fInitialCUnit.getHandleIdentifier());				arguments.put(ATTRIBUTE_SELECTION, new Integer(fSelectionStart).toString() + " " + new Integer(fSelectionLength).toString()); //$NON-NLS-1$				arguments.put(ATTRIBUTE_DELETE, Boolean.valueOf(fDeleteSource).toString());				arguments.put(ATTRIBUTE_MODE, new Integer(fCurrentMode == Mode.INLINE_ALL ? 1 : 0).toString());				String project= null;				IJavaProject javaProject= fInitialCUnit.getJavaProject();				if (javaProject != null)					project= javaProject.getElementName();				final IMethodBinding binding= fSourceProvider.getDeclaration().resolveBinding();				int flags= RefactoringDescriptor.STRUCTURAL_CHANGE;				if (!Modifier.isPrivate(binding.getModifiers()))					flags|= RefactoringDescriptor.MULTI_CHANGE;				JavaRefactoringDescriptor descriptor= new JavaRefactoringDescriptor(ID_INLINE_METHOD, project, Messages.format(RefactoringCoreMessages.InlineMethodRefactoring_descriptor_description, new String[] {BindingLabelProvider.getBindingLabel(binding, JavaElementLabels.ALL_FULLY_QUALIFIED), BindingLabelProvider.getBindingLabel(binding.getDeclaringClass(), JavaElementLabels.ALL_FULLY_QUALIFIED)}), getComment(), arguments, flags);				return new RefactoringChangeDescriptor(descriptor);			}		}; 	}