void (PsiFile file, PsiFile assoc) { final VirtualFile virtualFile = file.getVirtualFile(); if (virtualFile == null) return; if (assoc.getVirtualFile() == null) return; for (VirtualFilePointer pointer : myAssociations.keySet()) { if (pointer.getUrl().equals(virtualFile.getUrl())) { VirtualFilePointerContainer container = myAssociations.get(pointer); if (container != null) { final VirtualFilePointer p = container.findByUrl(assoc.getVirtualFile().getUrl()); if (p != null) { container.remove(p); if (container.size() == 0) { myAssociations.remove(pointer); } touch(); } } return; } } }