package org.zalando.intellij.swagger.service; import com.intellij.openapi.editor.Document; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; import com.intellij.psi.PsiFile; import java.util.Optional; import org.zalando.intellij.swagger.service.intellij.PsiDocumentManager; public class PsiFileService { private final ProjectManager projectManager; private final PsiDocumentManager psiDocumentManager; public PsiFileService( final ProjectManager projectManager, final PsiDocumentManager psiDocumentManager) { this.projectManager = projectManager; this.psiDocumentManager = psiDocumentManager; } public Optional<PsiFile> fromDocument(final Document document) { final Project[] openProjects = projectManager.getOpenProjects(); if (openProjects.length > 0) { final Project openProject = openProjects[0]; return Optional.ofNullable(psiDocumentManager.getPsiFile(openProject, document)); } return Optional.empty(); } }