/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.filetypes;
import com.intellij.injected.editor.VirtualFileWindow;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import gw.plugin.ij.util.InjectedElementEditor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class GosuFileTypes {
public static boolean isGosuFile(@Nullable PsiFile file) {
return file != null && isGosuFile(file.getVirtualFile());
}
public static boolean isGosuFile(@Nullable VirtualFile file) {
return file != null && file.getFileType() instanceof GosuCodeFileType;
}
public static boolean isTopLevelGosuFile(@Nullable PsiFile file) {
if (file == null) {
return false;
}
PsiFile parentFile = file.getUserData(InjectedElementEditor.ORIGINAL_PSI_FILE);
if (parentFile != null) {
return isTopLevelGosuFile(parentFile.getVirtualFile());
} else {
return isTopLevelGosuFile(file.getVirtualFile());
}
}
public static boolean isTopLevelGosuFile(@NotNull VirtualFile file) {
if (file instanceof VirtualFileWindow) {
return isTopLevelGosuFile(((VirtualFileWindow) file).getDelegate());
}
return file != null && isGosuFile(file);
}
}