/******************************************************************************* * Copyright (c) 2005, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.wst.jsdt.internal.corext.refactoring.scripting; import java.util.Map; import org.eclipse.ltk.core.refactoring.Refactoring; import org.eclipse.ltk.core.refactoring.RefactoringDescriptor; import org.eclipse.wst.jsdt.core.IFunction; import org.eclipse.wst.jsdt.core.JavaScriptModelException; import org.eclipse.wst.jsdt.core.refactoring.IJavaScriptRefactorings; import org.eclipse.wst.jsdt.core.refactoring.descriptors.RenameJavaScriptElementDescriptor; import org.eclipse.wst.jsdt.internal.corext.refactoring.JDTRefactoringContribution; import org.eclipse.wst.jsdt.internal.corext.refactoring.JDTRefactoringDescriptor; import org.eclipse.wst.jsdt.internal.corext.refactoring.rename.JavaRenameProcessor; import org.eclipse.wst.jsdt.internal.corext.refactoring.rename.JavaRenameRefactoring; import org.eclipse.wst.jsdt.internal.corext.refactoring.rename.MethodChecks; import org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameNonVirtualMethodProcessor; import org.eclipse.wst.jsdt.internal.corext.refactoring.rename.RenameVirtualMethodProcessor; /** * Refactoring contribution for the rename method refactoring. * * */ public final class RenameMethodRefactoringContribution extends JDTRefactoringContribution { /** * {@inheritDoc} */ public Refactoring createRefactoring(final RefactoringDescriptor descriptor) throws JavaScriptModelException { String project= descriptor.getProject(); Map arguments= ((JDTRefactoringDescriptor) descriptor).getArguments(); String input= (String) arguments.get(JDTRefactoringDescriptor.ATTRIBUTE_INPUT); IFunction method= (IFunction) JDTRefactoringDescriptor.handleToElement(project, input); JavaRenameProcessor processor; if (MethodChecks.isVirtual(method)) { processor= new RenameVirtualMethodProcessor(method); } else { processor= new RenameNonVirtualMethodProcessor(method); } return new JavaRenameRefactoring(processor); } /** * {@inheritDoc} */ public RefactoringDescriptor createDescriptor() { return new RenameJavaScriptElementDescriptor(IJavaScriptRefactorings.RENAME_METHOD); } }