Skip to main content

[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

Back to the top