コード例 #1
0
 @Override
 @NotNull
 protected UsageInfo[] findUsages() {
   List<UsageInfo> usages = Collections.synchronizedList(new ArrayList<UsageInfo>());
   for (PsiElement element : myElements) {
     boolean handled = false;
     for (SafeDeleteProcessorDelegate delegate :
         Extensions.getExtensions(SafeDeleteProcessorDelegate.EP_NAME)) {
       if (delegate.handlesElement(element)) {
         final NonCodeUsageSearchInfo filter = delegate.findUsages(element, myElements, usages);
         if (filter != null) {
           for (PsiElement nonCodeUsageElement : filter.getElementsToSearch()) {
             addNonCodeUsages(
                 nonCodeUsageElement,
                 usages,
                 filter.getInsideDeletedCondition(),
                 mySearchNonJava,
                 mySearchInCommentsAndStrings);
           }
         }
         handled = true;
         break;
       }
     }
     if (!handled && element instanceof PsiNamedElement) {
       findGenericElementUsages(element, usages, myElements);
       addNonCodeUsages(
           element,
           usages,
           getDefaultInsideDeletedCondition(myElements),
           mySearchNonJava,
           mySearchInCommentsAndStrings);
     }
   }
   final UsageInfo[] result = usages.toArray(new UsageInfo[usages.size()]);
   return UsageViewUtil.removeDuplicatedUsages(result);
 }