/**
* Copyright (c) 2013-2015 by Brainwy Software Ltda, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.editor.refactoring;
import java.io.File;
import java.io.IOException;
import org.eclipse.core.resources.IContainer;
import org.python.pydev.core.FileUtilsFileBuffer;
import org.python.pydev.core.IPythonNature;
import org.python.pydev.core.MisconfigurationException;
import org.python.pydev.core.docutils.PySelection;
import org.python.pydev.plugin.nature.PythonNature;
public class ModuleRenameRefactoringRequest extends RefactoringRequest {
private IContainer target;
/**
* @param target: optional (may be null): when null it means we'll move/rename using the same source folder it's currently
* in as a reference. Otherwise, this is the container it should be moved to.
*/
public ModuleRenameRefactoringRequest(File file, IPythonNature nature, IContainer target) throws IOException {
super(file, new PySelection(FileUtilsFileBuffer.getDocFromFile(file)), nature);
this.target = target;
}
public void setTarget(IContainer target) {
this.target = target;
}
public IContainer getTarget() {
return target;
}
@Override
public void fillInitialNameAndOffset() {
try {
initialName = nature.resolveModule(file);
if (initialName.endsWith(".__init__")) {
initialName = initialName.substring(0, initialName.length() - 9);
}
} catch (MisconfigurationException e) {
throw new RuntimeException(e);
}
}
@Override
public boolean isModuleRenameRefactoringRequest() {
return true;
}
@Override
public IPythonNature getTargetNature() {
if (target != null) {
return PythonNature.getPythonNature(target);
}
return nature;
}
}