@Override
  public void removeAssociation(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;
      }
    }
  }
@Override
  public void removeAssociation(PsiFile file, PsiFile assoc)