@Override
    @Nullable
    public PsiElement retrieve() {
      PsiFile psiFile = getFile();
      if (psiFile == null || !psiFile.isValid()) return null;

      return SelfElementInfo.findElementInside(psiFile, myStartOffset, myEndOffset, myInfo);
    }
 @Override
 public PsiElement retrieve() {
   return SelfElementInfo.restoreDirectoryFromVirtual(myFile, myProject);
 }
 @Override
 @Nullable
 public PsiFile getFile() {
   return SelfElementInfo.restoreFileFromVirtual(myFile, myProject, myLanguage);
 }