[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[imp-dev] move method refactoring problem...kindly help urgently..
|
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.IReorgDestination;
import org.eclipse.jdt.internal.corext.refactoring.reorg.IReorgQueries;
import org.eclipse.jdt.internal.corext.refactoring.reorg.JavaMoveProcessor;
import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory;
import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgUtils;
import org.eclipse.jdt.internal.corext.refactoring.reorg.IReorgPolicy.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.MoveRefactoring;
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");
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Actaullay this code is giving me runtime exception.also m not confirmed whether am doing refactoring correctly or not...
any help please, reply as soon as possible, as m in really in trouble, and my project is not proceeding furthure.
Regards
lehmia kiran