void (final PsiElement element, final PsiVariable variable, final String oldClassName, String newClassName) { final PsiTypeElement typeElement = variable.getTypeElement(); if (typeElement == null) return; final PsiJavaCodeReferenceElement ref = typeElement.getInnermostComponentReferenceElement(); if (ref == null) return; final String variableName = variable.getName(); if (variableName == null) return; if (variableName.equalsIgnoreCase(newClassName)) return; if (!StringUtil.containsIgnoreCase(variableName, oldClassName)) return; if (ref.equals(element)) { myElements.add(variable); if (variable.getType() instanceof PsiArrayType) { myToUnpluralize.add(variable); } } else { PsiType collectionType = JavaPsiFacade.getElementFactory(variable.getProject()) .createTypeByFQClassName("java.util.Collection", variable.getResolveScope()); if (!collectionType.isAssignableFrom(variable.getType())) return; final PsiTypeElement[] typeParameterElements = ref.getParameterList().getTypeParameterElements(); for (PsiTypeElement typeParameterElement : typeParameterElements) { final PsiJavaCodeReferenceElement parameterRef = typeParameterElement.getInnermostComponentReferenceElement(); if (parameterRef != null && parameterRef.equals(element)) { myElements.add(variable); myToUnpluralize.add(variable); break; } } } }