blob: ca690d25d2083071dfb5259872253da661952bbc [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2008 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
*******************************************************************************/
package org.eclipse.jdt.core.refactoring.descriptors;
import org.eclipse.core.runtime.Assert;
import org.eclipse.ltk.core.refactoring.RefactoringContribution;
import org.eclipse.ltk.core.refactoring.RefactoringCore;
import org.eclipse.ltk.core.refactoring.RefactoringStatus;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.ISourceRange;
import org.eclipse.jdt.core.refactoring.IJavaRefactorings;
import org.eclipse.jdt.internal.core.refactoring.descriptors.DescriptorMessages;
import org.eclipse.jdt.internal.core.refactoring.descriptors.JavaRefactoringDescriptorUtil;
/**
* Refactoring descriptor for the rename local variable refactoring.
* <p>
* An instance of this refactoring descriptor may be obtained by calling
* {@link RefactoringContribution#createDescriptor()} on a refactoring
* contribution requested by invoking
* {@link RefactoringCore#getRefactoringContribution(String)} with the
* appropriate refactoring id.
* </p>
* <p>
* Note: this class is not intended to be instantiated by clients.
* </p>
*
* @since 1.1
* @deprecated since 1.2 merged into {@link RenameJavaElementDescriptor}
*
* @noinstantiate This class is not intended to be instantiated by clients.
* @noextend This class is not intended to be subclassed by clients.
*/
public final class RenameLocalVariableDescriptor extends JavaRefactoringDescriptor {
/** The name attribute */
private String fName= null;
/** The references attribute */
private boolean fReferences= false;
/** The selection attribute */
private ISourceRange fSelection= null;
/** The compilation unit attribute */
private ICompilationUnit fUnit= null;
/**
* Creates a new refactoring descriptor.
* @deprecated merged into {@link RenameJavaElementDescriptor}
*/
public RenameLocalVariableDescriptor() {
super(IJavaRefactorings.RENAME_LOCAL_VARIABLE);
}
/**
* {@inheritDoc}
*/
protected void populateArgumentMap() {
super.populateArgumentMap();
JavaRefactoringDescriptorUtil.setString(fArguments, ATTRIBUTE_NAME, fName);
JavaRefactoringDescriptorUtil.setJavaElement(fArguments, ATTRIBUTE_INPUT, getProject(), fUnit);
JavaRefactoringDescriptorUtil.setSelection(fArguments, ATTRIBUTE_SELECTION, fSelection.getOffset(), fSelection.getLength());
JavaRefactoringDescriptorUtil.setBoolean(fArguments, ATTRIBUTE_REFERENCES, fReferences);
}
/**
* Sets the compilation unit which contains the local variable.
*
* @param unit
* the compilation unit to set
*/
public void setCompilationUnit(final ICompilationUnit unit) {
Assert.isNotNull(unit);
fUnit= unit;
}
/**
* Sets the new name to rename the local variable to.
*
* @param name
* the non-empty new name to set
*/
public void setNewName(final String name) {
Assert.isNotNull(name);
Assert.isLegal(!"".equals(name), "Name must not be empty"); //$NON-NLS-1$//$NON-NLS-2$
fName= name;
}
/**
* Sets the selection within the compilation unit which references the local
* variable to rename.
*
* @param selection
* the selection to set
*/
public void setSelection(final ISourceRange selection) {
Assert.isNotNull(selection);
fSelection= selection;
}
/**
* Determines whether references to the local variable should be renamed.
* <p>
* The default is to not update references.
* </p>
*
* @param update
* <code>true</code> to update references, <code>false</code>
* otherwise
*/
public void setUpdateReferences(final boolean update) {
fReferences= update;
}
/**
* {@inheritDoc}
*/
public RefactoringStatus validateDescriptor() {
RefactoringStatus status= super.validateDescriptor();
if (fName == null || "".equals(fName)) //$NON-NLS-1$
status.merge(RefactoringStatus.createFatalErrorStatus(DescriptorMessages.RenameResourceDescriptor_no_new_name));
if (fUnit == null)
status.merge(RefactoringStatus.createFatalErrorStatus(DescriptorMessages.RenameLocalVariableDescriptor_no_compilation_unit));
if (fSelection == null)
status.merge(RefactoringStatus.createFatalErrorStatus(DescriptorMessages.RenameLocalVariableDescriptor_no_selection));
return status;
}
}