blob: da682a4327e3abab3f02a8a025273908952ecdc6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
/*
* Created on Sep 26, 2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package org.eclipse.jst.j2ee.internal.actions;
import java.util.Collections;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Status;
import org.eclipse.jst.j2ee.internal.dialogs.J2EERenameUIConstants;
import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin;
import org.eclipse.jst.j2ee.internal.rename.RenameOptions;
import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit;
import org.eclipse.ltk.core.refactoring.Change;
import org.eclipse.ltk.core.refactoring.RefactoringStatus;
/**
*
* TODO To change the template for this generated type comment go to Window - Preferences - Java -
* Code Style - Code Templates
*/
public class J2EEModuleRenameChange extends Change {
private String newName;
private IProject target;
private boolean renameDependencies;
public J2EEModuleRenameChange(IProject target, String newName, boolean renameDependencies) {
this.target = target;
this.newName = newName;
this.renameDependencies = renameDependencies;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ltk.core.refactoring.Change#getName()
*/
public String getName() {
return J2EERenameUIConstants.RENAME_MODULES;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ltk.core.refactoring.Change#initializeValidationData(org.eclipse.core.runtime.IProgressMonitor)
*/
public void initializeValidationData(IProgressMonitor pm) {
//Do nothing
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ltk.core.refactoring.Change#isValid(org.eclipse.core.runtime.IProgressMonitor)
*/
public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException, OperationCanceledException {
if (target != null)
return RefactoringStatus.create(Status.OK_STATUS);
return RefactoringStatus.create(new Status(IStatus.ERROR, J2EEUIPlugin.PLUGIN_ID, 0, "", null)); //$NON-NLS-1$
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ltk.core.refactoring.Change#perform(org.eclipse.core.runtime.IProgressMonitor)
*/
public Change perform(IProgressMonitor pm) throws CoreException {
// try {
// RenameModuleOperation renameOp = new RenameModuleOperation(getRenameOptions());
// renameOp.run(pm);
//String contextRoot = getServerContextRoot();
// TODO fix up rename and context root operations
//if (webNature != null) {
//new UpdateWebContextRootMetadataOperation(newTarget, webNature.getContextRoot()).run(pm);
// if(contextRoot.equals("") == false){ //$NON-NLS-1$
// new UpdateWebContextRootMetadataOperation(target, contextRoot).run(pm);
// } else if (J2EENature.getRegisteredRuntime(target) == null)
// new RenameUtilityJarMetadataOperation(target, newTarget).run(pm);
// } catch (InvocationTargetException e) {
// //Ignore
// } catch (InterruptedException e) {
// //Ignore
// }
return null;
}
protected String getServerContextRoot() {
WebArtifactEdit webEdit = null;
try{
webEdit = WebArtifactEdit.getWebArtifactEditForRead(target);
if (webEdit != null)
return webEdit.getServerContextRoot();
} finally {
if (webEdit != null )
webEdit.dispose();
}
return ""; //$NON-NLS-1$
}
/**
* @return
*/
/**@deprecated
* If this method is not used it should be removed at a later time, marking as deprecated
* Warning cleanup 12/07/2005
*/
private RenameOptions getRenameOptions() {
RenameOptions options = new RenameOptions();
options.setNewName(this.newName);
options.setSelectedProjects(Collections.singletonList(this.target));
// TODO check module type for EAR type
//options.setIsEARRename(EARNatureRuntime.getRuntime(this.target) != null);
options.setRenameModuleDependencies(this.renameDependencies);
options.setRenameModules(true);
options.setRenameProjects(false);
return options;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ltk.core.refactoring.Change#getModifiedElement()
*/
public Object getModifiedElement() {
return null;
}
}