本文整理匯總了Java中com.intellij.refactoring.rename.JavaUnresolvableLocalCollisionDetector類的典型用法代碼示例。如果您正苦於以下問題:Java JavaUnresolvableLocalCollisionDetector類的具體用法?Java JavaUnresolvableLocalCollisionDetector怎麽用?Java JavaUnresolvableLocalCollisionDetector使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
JavaUnresolvableLocalCollisionDetector類屬於com.intellij.refactoring.rename包,在下文中一共展示了JavaUnresolvableLocalCollisionDetector類的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: isOK
import com.intellij.refactoring.rename.JavaUnresolvableLocalCollisionDetector; //導入依賴的package包/類
public boolean isOK(IntroduceVariableSettings settings) {
String name = settings.getEnteredName();
final PsiElement anchor;
final boolean replaceAllOccurrences = settings.isReplaceAllOccurrences();
if (replaceAllOccurrences) {
anchor = myAnchorStatementIfAll;
} else {
anchor = myAnchorStatement;
}
final PsiElement scope = anchor.getParent();
if(scope == null) return true;
final MultiMap<PsiElement, String> conflicts = new MultiMap<PsiElement, String>();
final HashSet<PsiVariable> reportedVariables = new HashSet<PsiVariable>();
JavaUnresolvableLocalCollisionDetector.CollidingVariableVisitor visitor = new JavaUnresolvableLocalCollisionDetector.CollidingVariableVisitor() {
public void visitCollidingElement(PsiVariable collidingVariable) {
if (!reportedVariables.contains(collidingVariable)) {
reportedVariables.add(collidingVariable);
String message = RefactoringBundle.message("introduced.variable.will.conflict.with.0", RefactoringUIUtil.getDescription(collidingVariable, true));
conflicts.putValue(collidingVariable, message);
}
}
};
JavaUnresolvableLocalCollisionDetector.visitLocalsCollisions(anchor, name, scope, anchor, visitor);
if (replaceAllOccurrences) {
final PsiExpression[] occurences = myOccurenceManager.getOccurrences();
for (PsiExpression occurence : occurences) {
IntroduceVariableBase.checkInLoopCondition(occurence, conflicts);
}
} else {
IntroduceVariableBase.checkInLoopCondition(myOccurenceManager.getMainOccurence(), conflicts);
}
if (conflicts.size() > 0) {
return myIntroduceVariableBase.reportConflicts(conflicts, myProject, settings);
} else {
return true;
}
}