Skip to main content



      Home
Home » Language IDEs » Java Development Tools (JDT) » move method refactoring problem...kindly help urgently.
move method refactoring problem...kindly help urgently. [message #516775] Thu, 25 February 2010 01:59
Eclipse UserFriend
Hi,

i want to do move method refactoring, below is the code that i am using to move method
////////////////////////////////**************************** ***********///////////////////////////////////////////////// //////////
package source;

import java.util.ArrayList;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.refactoring.IJavaRefactorings;
import org.eclipse.jdt.core.refactoring.descriptors.MoveDescriptor;
import org.eclipse.jdt.internal.corext.refactoring.reorg.IReorgDest ination;
import org.eclipse.jdt.internal.corext.refactoring.reorg.IReorgQuer ies;
import org.eclipse.jdt.internal.corext.refactoring.reorg.JavaMovePr ocessor;
import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolic yFactory;
import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgUtils ;
import org.eclipse.jdt.internal.corext.refactoring.reorg.IReorgPoli cy.IMovePolicy;
import org.eclipse.jdt.internal.corext.refactoring.util.Changes;
//import org.eclipse.jface.viewers.deferred.ChangeQueue.Change;
import org.eclipse.ltk.core.refactoring.Change;
import org.eclipse.ltk.core.refactoring.RefactoringContribution;
import org.eclipse.ltk.core.refactoring.RefactoringCore;
import org.eclipse.ltk.core.refactoring.RefactoringStatus;
import org.eclipse.ltk.core.refactoring.participants.MoveRefactorin g;

import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;

public class Main {

public static void doRefactoring()
{
try{
///////////////Making of compilation unit////////////////
String filename = "d:\\lehmia\\Test.java";

IFile file = (IFile) new Path(filename);

ICompilationUnit javaFile = (ICompilationUnit)JavaCore.create(file);
////////////////Collecting elements of java File////////////////////////

ArrayList elementList=new ArrayList();
elementList.add(javaFile);
//////////////////////////////////////////////////////////// //////////
IResource[] resources = ReorgUtils.getResources(elementList);
for(int i=0;i<resources.length;i++)
{
System.out.println("Resource"+i+resources[i]);
}

IJavaElement[] elements = ReorgUtils.getJavaElements(elementList);
IMovePolicy policy = ReorgPolicyFactory.createMovePolicy(resources,elements);
JavaMoveProcessor processor = new JavaMoveProcessor(policy);
MoveRefactoring refactoring = new MoveRefactoring(processor);
IReorgQueries yourQueries =null;//////////// here to add code to enter move method query
processor.setReorgQueries(yourQueries);
// yours option here
IReorgDestination destination = null;
processor.setDestination(destination);
processor.setUpdateReferences(true);
processor.setUpdateQualifiedNames(true);
IProgressMonitor monitor = null;
RefactoringStatus status = refactoring.checkAllConditions(monitor);
if (!status.hasFatalError()) {
Change change = refactoring.createChange(monitor);
change.initializeValidationData(monitor);
change.perform(monitor);

}
}
catch(CoreException e)
{
e.printStackTrace();
}
}


public static void main(String args[])
{
System.out.println("before refactoring");
doRefactoring();
System.out.println("after refactoring");
}

}


//////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// /////////////
Actually to be precise; i am confused in two things first is how to pass the parameters, the places where i have passed null is because i am unable to get how to initialize these parameters..

Secondly, i want to call moveMethod refactoring programmatically.I have seen the link that u have reffered but i am not confirmed whether its move Method or moving anyother thing like(class, package or project).

Many thanx for your time and help.

Regards
lehmia kiran
Previous Topic:Missing Hibernate under "New/Other"
Next Topic:access table at runtime
Goto Forum:
  


Current Time: Wed Mar 19 15:54:51 EDT 2025

Powered by FUDForum. Page generated in 0.02406 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top