@Override
  public PsiFile[] getAssociationsFor(PsiFile file, FileType... fileTypes) {
    final VirtualFile virtualFile = file.getVirtualFile();
    if (virtualFile == null) return PsiFile.EMPTY_ARRAY;

    for (VirtualFilePointer pointer : myAssociations.keySet()) {
      if (pointer.isValid() && pointer.getUrl().equals(virtualFile.getUrl())) {
        final VirtualFilePointerContainer container = myAssociations.get(pointer);
        if (container != null) {
          final VirtualFile[] files = container.getFiles();
          final Set<PsiFile> list = new HashSet<>();
          final PsiManager psiManager = PsiManager.getInstance(myProject);
          for (VirtualFile assoc : files) {
            final PsiFile psiFile = psiManager.findFile(assoc);
            if (psiFile != null && (fileTypes.length == 0 || matchesFileType(psiFile, fileTypes))) {
              list.add(psiFile);
            }
          }
          return PsiUtilCore.toPsiFileArray(list);
        }
        else {
          return PsiFile.EMPTY_ARRAY;
        }
      }
    }
    return PsiFile.EMPTY_ARRAY;
  }
@Override
  public PsiFile[] getAssociationsFor(PsiFile file, FileType... fileTypes)