/******************************************************************************* * Copyright (c) 2007, 2013 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.jdt.debug.tests.refactoring; import org.eclipse.core.resources.IResource; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.internal.corext.refactoring.reorg.IReorgPolicy.IMovePolicy; import org.eclipse.jdt.internal.corext.refactoring.reorg.JavaMoveProcessor; import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgDestinationFactory; import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory; import org.eclipse.ltk.core.refactoring.participants.MoveRefactoring; /** * Common code for setting up and performing a move refactoring. * * @since 3.4 */ public class MoveRefactoringTest extends AbstractRefactoringDebugTest { /** * @param name */ public MoveRefactoringTest(String name) { super(name); } /** Configures a processor for refactoring * @param javaProject * @param type * @return the configured processor that will be used in refactoring * @throws JavaModelException */ protected JavaMoveProcessor setupRefactor(IJavaProject javaProject, IJavaElement type) throws JavaModelException { IMovePolicy movePolicy= ReorgPolicyFactory.createMovePolicy( new IResource[0], new IJavaElement[] {type}); JavaMoveProcessor processor= new JavaMoveProcessor(movePolicy); IJavaElement destination= getPackageFragmentRoot(javaProject, "src").getPackageFragment("a.b").getCompilationUnit("MoveeRecipient.java"); processor.setDestination(ReorgDestinationFactory.createDestination(destination)); processor.setReorgQueries(new MockReorgQueries()); if(processor.canUpdateJavaReferences()) processor.setUpdateReferences(true);//assuming is properly set otherwise return processor; } /** Sets up a refactoring and executes it. * @param javaProject * @param cunit * @throws JavaModelException * @throws Exception */ protected void refactor(IJavaProject javaProject, IJavaElement type) throws JavaModelException, Exception { JavaMoveProcessor processor = setupRefactor(javaProject, type); performRefactor(new MoveRefactoring(processor)); } }