/** * Copyright (c) 2005-2011 by Appcelerator, 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. */ /* * Created on Apr 9, 2006 */ package com.python.pydev.refactoring.wizards.rename; import java.util.List; import org.eclipse.ltk.core.refactoring.RefactoringStatus; import org.python.pydev.editor.codecompletion.revisited.modules.SourceModule; import org.python.pydev.editor.codecompletion.revisited.visitors.Definition; import org.python.pydev.editor.refactoring.RefactoringRequest; import org.python.pydev.parser.jython.SimpleNode; import org.python.pydev.parser.visitors.scope.ASTEntry; import com.python.pydev.analysis.scopeanalysis.ScopeAnalysis; public class PyRenameSelfAttributeProcess extends AbstractRenameWorkspaceRefactorProcess { /** * Target is 'self.attr' */ private String target; public PyRenameSelfAttributeProcess(Definition definition, String target) { super(definition); this.target = target; } protected void findReferencesToRenameOnLocalScope(RefactoringRequest request, RefactoringStatus status) { SimpleNode root = request.getAST(); List<ASTEntry> oc = ScopeAnalysis.getAttributeReferences(request.initialName, root); if (oc.size() > 0) { //only add comments and strings if there's at least some other occurrence oc.addAll(ScopeAnalysis.getCommentOccurrences(request.initialName, root)); oc.addAll(ScopeAnalysis.getStringOccurrences(request.initialName, root)); } addOccurrences(request, oc); } @Override protected List<ASTEntry> findReferencesOnOtherModule(RefactoringStatus status, String initialName, SourceModule module) { SimpleNode root = module.getAst(); List<ASTEntry> oc = ScopeAnalysis.getAttributeReferences(initialName, root); if (oc.size() > 0) { //only add comments and strings if there's at least some other occurrence oc.addAll(ScopeAnalysis.getCommentOccurrences(request.initialName, root)); oc.addAll(ScopeAnalysis.getStringOccurrences(request.initialName, root)); } return oc; //will get the self.xxx occurrences } @Override protected boolean getRecheckWhereDefinitionWasFound() { return false; } }