IJavaElement dest = getDestinationParent(element);
switch (element.getElementType()) {
case IJavaElement.PACKAGE_DECLARATION :
return new CreatePackageDeclarationOperation(element.getElementName(), (ICompilationUnit) dest);
case IJavaElement.IMPORT_DECLARATION :
IImportDeclaration importDeclaration = (IImportDeclaration) element;
return new CreateImportOperation(element.getElementName(), (ICompilationUnit) dest, importDeclaration.getFlags());
case IJavaElement.TYPE :
if (isRenamingMainType(element, dest)) {
IPath path = element.getPath();
String extension = path.getFileExtension();
return new RenameResourceElementsOperation(new IJavaElement[] {dest}, new IJavaElement[] {dest.getParent()}, new String[]{getNewNameFor(element) + '.' + extension}, this.force);