1 package com
.intellij
.ide
;
3 import com
.intellij
.openapi
.actionSystem
.DataConstants
;
4 import com
.intellij
.openapi
.actionSystem
.DataContext
;
5 import com
.intellij
.openapi
.editor
.Editor
;
6 import com
.intellij
.openapi
.fileEditor
.FileEditorManager
;
7 import com
.intellij
.openapi
.module
.Module
;
8 import com
.intellij
.openapi
.project
.Project
;
9 import com
.intellij
.openapi
.project
.ex
.ProjectEx
;
10 import com
.intellij
.openapi
.vfs
.VirtualFile
;
11 import com
.intellij
.psi
.*;
16 public class DataAccessors
{
17 public static final DataAccessor
<Project
> PROJECT
= new DataAccessor
.SimpleDataAccessor
<Project
>(DataConstants
.PROJECT
);
18 public static final DataAccessor
<Module
> MODULE
= new DataAccessor
.SimpleDataAccessor
<Module
>(DataConstants
.MODULE
);
19 public static final DataAccessor
<Editor
> EDITOR
= new DataAccessor
.SimpleDataAccessor
<Editor
>(DataConstants
.EDITOR
);
20 public static final DataAccessor
<PsiManager
> PSI_MANAGER
= new DataAccessor
<PsiManager
>() {
21 public PsiManager
getImpl(DataContext dataContext
) throws NoDataException
{
22 return PsiManager
.getInstance(PROJECT
.getNotNull(dataContext
));
25 public static final DataAccessor
<FileEditorManager
> FILE_EDITOR_MANAGER
= new DataAccessor
<FileEditorManager
>() {
26 public FileEditorManager
getImpl(DataContext dataContext
) throws NoDataException
{
27 return FileEditorManager
.getInstance(PROJECT
.getNotNull(dataContext
));
30 public static final DataAccessor
<PsiFile
> PSI_FILE
= new DataAccessor
<PsiFile
>() {
31 public PsiFile
getImpl(DataContext dataContext
) throws NoDataException
{
32 return PSI_MANAGER
.getNotNull(dataContext
).findFile(VIRTUAL_FILE
.getNotNull(dataContext
));
35 public static final DataAccessor
<PsiElement
> PSI_ELEMENT
= new DataAccessor
.SimpleDataAccessor
<PsiElement
>(DataConstants
.PSI_ELEMENT
);
36 public static final DataAccessor
<PsiElement
[]> PSI_ELEMENT_ARRAY
= new DataAccessor
.SimpleDataAccessor
<PsiElement
[]>(DataConstants
.PSI_ELEMENT_ARRAY
);
37 public static final DataAccessor
<VirtualFile
> VIRTUAL_FILE
= new DataAccessor
.SimpleDataAccessor
<VirtualFile
>(DataConstants
.VIRTUAL_FILE
);
38 public static final DataAccessor
<VirtualFile
[]> VIRTUAL_FILE_ARRAY
= new DataAccessor
.SimpleDataAccessor
<VirtualFile
[]>(DataConstants
.VIRTUAL_FILE_ARRAY
);
39 public static final DataAccessor
<VirtualFile
> VIRTUAL_DIR_OR_PARENT
= new DataAccessor
<VirtualFile
>() {
40 public VirtualFile
getImpl(DataContext dataContext
) throws NoDataException
{
41 VirtualFile virtualFile
= VIRTUAL_FILE
.getNotNull(dataContext
);
42 return virtualFile
.isDirectory() ? virtualFile
: virtualFile
.getParent();
48 public static final DataAccessor
<String
> PROJECT_FILE_PATH
= new DataAccessor
<String
>() {
49 public String
getImpl(DataContext dataContext
) throws NoDataException
{
50 Project project
= PROJECT
.getNotNull(dataContext
);
51 return project
.getProjectFilePath();
54 public static final DataAccessor
<VirtualFile
> PROJECT_BASE_DIR
= new DataAccessor
<VirtualFile
>() {
55 public VirtualFile
getImpl(DataContext dataContext
) throws NoDataException
{
56 Project project
= PROJECT
.getNotNull(dataContext
);
57 return project
.getBaseDir();
60 public static final DataAccessor
<String
> MODULE_FILE_PATH
= new DataAccessor
<String
>() {
61 public String
getImpl(DataContext dataContext
) throws NoDataException
{
62 Module module
= MODULE
.getNotNull(dataContext
);
63 return module
.getModuleFilePath();
66 public static final DataAccessor
<ProjectEx
> PROJECT_EX
= new DataAccessor
.SubClassDataAccessor
<Project
, ProjectEx
>(PROJECT
, ProjectEx
.class);