Example usage for com.intellij.openapi.fileEditor OpenFileDescriptor getFile

List of usage examples for com.intellij.openapi.fileEditor OpenFileDescriptor getFile

Introduction

In this page you can find the example usage for com.intellij.openapi.fileEditor OpenFileDescriptor getFile.

Prototype

@NotNull
    public VirtualFile getFile() 

Source Link

Usage

From source file:com.intellij.psi.impl.source.xml.XmlAttributeDeclImpl.java

License:Apache License

public void navigate(final boolean requestFocus) {
    if (isPhysical()) {
        super.navigate(requestFocus);
        return;//from  w  w  w .  j a v a2  s. c o  m
    }
    final PsiNamedElement psiNamedElement = XmlUtil.findRealNamedElement(this);
    Navigatable navigatable = EditSourceUtil.getDescriptor(psiNamedElement);

    if (psiNamedElement instanceof XmlEntityDecl) {
        final OpenFileDescriptor fileDescriptor = (OpenFileDescriptor) navigatable;
        navigatable = new OpenFileDescriptor(fileDescriptor.getProject(), fileDescriptor.getFile(),
                psiNamedElement.getTextRange().getStartOffset() + psiNamedElement.getText().indexOf(getName()));
    }
    navigatable.navigate(requestFocus);
}

From source file:com.intellij.unscramble.AnnotateStackTraceAction.java

License:Apache License

@Override
public void actionPerformed(AnActionEvent e) {
    cache = new HashMap<Integer, VcsFileRevision>();

    ProgressManager.getInstance().run(new Task.Backgroundable(myEditor.getProject(), "Getting file history",
            true, PerformInBackgroundOption.ALWAYS_BACKGROUND) {
        @Override//w  ww.  j  a  v  a 2s . c o  m
        public boolean shouldStartInBackground() {
            return true;
        }

        @Override
        public void onSuccess() {
        }

        private void showGutter() {
            final EditorGutterAction action = new EditorGutterAction() {
                @Override
                public void doAction(int lineNum) {
                    final VcsFileRevision revision = cache.get(lineNum);
                    final List<RangeHighlighter> links = myHyperlinks.findAllHyperlinksOnLine(lineNum);
                    if (!links.isEmpty()) {
                        HyperlinkInfo info = myHyperlinks.getHyperlinks().get(links.get(links.size() - 1));

                        if (info instanceof FileHyperlinkInfo) {
                            final VirtualFile file = ((FileHyperlinkInfo) info).getDescriptor().getFile();
                            final Project project = getProject();
                            final AbstractVcs vcs = ProjectLevelVcsManagerEx.getInstanceEx(project)
                                    .getVcsFor(file);
                            if (vcs != null) {
                                final VcsRevisionNumber number = revision.getRevisionNumber();
                                final VcsKey vcsKey = vcs.getKeyInstanceMethod();
                                ShowAllAffectedGenericAction.showSubmittedFiles(project, number, file, vcsKey);
                            }
                        }
                    }
                }

                @Override
                public Cursor getCursor(int lineNum) {
                    return Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
                }
            };

            myEditor.getGutter().registerTextAnnotation(new ActiveAnnotationGutter() {
                @Override
                public void doAction(int lineNum) {
                }

                @Override
                public Cursor getCursor(int lineNum) {
                    return Cursor.getDefaultCursor();
                }

                @Override
                public String getLineText(int line, Editor editor) {
                    final VcsFileRevision revision = cache.get(line);
                    if (revision != null) {
                        return String.format("%" + maxDateLength + "s",
                                DateFormatUtil.formatPrettyDate(revision.getRevisionDate())) + " "
                                + revision.getAuthor();
                    }
                    return "";
                }

                @Override
                public String getToolTip(int line, Editor editor) {
                    final VcsFileRevision revision = cache.get(line);
                    if (revision != null) {
                        return XmlStringUtil.wrapInHtml(revision.getAuthor() + " "
                                + DateFormatUtil.formatDateTime(revision.getRevisionDate()) + "<br/>"
                                + revision.getCommitMessage());
                    }
                    return null;
                }

                @Override
                public EditorFontType getStyle(int line, Editor editor) {
                    return line == newestLine ? EditorFontType.BOLD : EditorFontType.PLAIN;
                }

                @Override
                public ColorKey getColor(int line, Editor editor) {
                    return AnnotationSource.LOCAL.getColor();
                }

                @Override
                public Color getBgColor(int line, Editor editor) {
                    return null;
                }

                @Override
                public List<AnAction> getPopupActions(int line, Editor editor) {
                    return Collections.emptyList();
                }

                @Override
                public void gutterClosed() {
                    myGutterShowed = false;
                }
            }, action);

            myGutterShowed = true;
        }

        @Override
        public void run(@NotNull ProgressIndicator indicator) {
            Date newestDate = null;

            List<VirtualFile> files = new ArrayList<VirtualFile>();
            for (int line = 0; line < myEditor.getDocument().getLineCount(); line++) {
                indicator.checkCanceled();
                final List<RangeHighlighter> links = myHyperlinks.findAllHyperlinksOnLine(line);
                if (links.size() > 0) {
                    final HyperlinkInfo info = myHyperlinks.getHyperlinks().get(links.get(links.size() - 1));
                    if (info instanceof FileHyperlinkInfo) {
                        final OpenFileDescriptor fileDescriptor = ((FileHyperlinkInfo) info).getDescriptor();
                        if (fileDescriptor != null) {
                            final VirtualFile file = fileDescriptor.getFile();
                            if (files2lines.containsKey(file)) {
                                files2lines.get(file).add(line);
                            } else {
                                final ArrayList<Integer> lines = new ArrayList<Integer>();
                                lines.add(line);
                                files2lines.put(file, lines);
                                files.add(file);
                            }
                        }
                    }
                }
            }

            for (VirtualFile file : files) {
                indicator.checkCanceled();
                final AbstractVcs vcs = VcsUtil.getVcsFor(myEditor.getProject(), file);
                FilePath filePath = VcsContextFactory.SERVICE.getInstance().createFilePathOn(file);
                if (vcs != null) {
                    try {
                        final VcsHistoryProvider provider = vcs.getVcsHistoryProvider();
                        final VcsHistorySession session;
                        if (provider != null) {
                            session = provider.createSessionFor(filePath);
                            final List<VcsFileRevision> list;
                            if (session != null) {
                                list = session.getRevisionList();
                                final List<Integer> lines = files2lines.get(file);
                                if (list != null && !list.isEmpty()) {
                                    final VcsFileRevision revision = list.get(0);
                                    final Date date = revision.getRevisionDate();
                                    if (newestDate == null || date.after(newestDate)) {
                                        newestDate = date;
                                        newestLine = lines.get(0);
                                    }
                                    final int length = DateFormatUtil.formatPrettyDate(date).length();
                                    if (length > maxDateLength) {
                                        maxDateLength = length;
                                    }
                                    for (Integer line : lines) {
                                        cache.put(line, revision);
                                    }
                                    ApplicationManager.getApplication().invokeLater(new Runnable() {
                                        @Override
                                        public void run() {
                                            if (!myGutterShowed) {
                                                showGutter();
                                            } else {
                                                ((EditorGutterComponentEx) myEditor.getGutter())
                                                        .revalidateMarkup();
                                            }
                                        }
                                    });
                                }
                            }
                        }
                    } catch (VcsException ignored) {
                        ignored.printStackTrace();
                    }
                }

            }
        }
    });
}

From source file:org.eclipse.xtext.idea.execution.TraceBasedExceptionFilter.java

License:Open Source License

@Override
public Filter.Result applyFilter(final String line, final int textEndOffset) {
    final Filter.Result result = super.applyFilter(line, textEndOffset);
    boolean _equals = Objects.equal(result, null);
    if (_equals) {
        return null;
    }/*w  ww .jav a 2 s.c  om*/
    List<Filter.ResultItem> _resultItems = result.getResultItems();
    final Function1<Filter.ResultItem, Boolean> _function = (Filter.ResultItem it) -> {
        HyperlinkInfo _hyperlinkInfo = it.getHyperlinkInfo();
        return Boolean.valueOf((!Objects.equal(_hyperlinkInfo, null)));
    };
    final Filter.ResultItem resultItem = IterableExtensions.<Filter.ResultItem>findFirst(_resultItems,
            _function);
    final HyperlinkInfo hyperlinkInfo = resultItem.getHyperlinkInfo();
    if ((hyperlinkInfo instanceof FileHyperlinkInfo)) {
        final OpenFileDescriptor descriptor = ((FileHyperlinkInfo) hyperlinkInfo).getDescriptor();
        boolean _notEquals = (!Objects.equal(descriptor, null));
        if (_notEquals) {
            VirtualFile _file = descriptor.getFile();
            Project _project = descriptor.getProject();
            final VirtualFileInProject fileInProject = new VirtualFileInProject(_file, _project);
            boolean _isGenerated = this.traceProvider.isGenerated(fileInProject);
            if (_isGenerated) {
                final IIdeaTrace trace = this.traceProvider.getTraceToSource(fileInProject);
                final RangeMarker rangeMarker = descriptor.getRangeMarker();
                if (((!Objects.equal(trace, null)) && (!Objects.equal(rangeMarker, null)))) {
                    Application _application = ApplicationManager.getApplication();
                    final Computable<Integer> _function_1 = () -> {
                        int _xblockexpression = (int) 0;
                        {
                            FileDocumentManager _instance = FileDocumentManager.getInstance();
                            VirtualFile _file_1 = descriptor.getFile();
                            final Document document = _instance.getDocument(_file_1);
                            int _startOffset = rangeMarker.getStartOffset();
                            final int lineNumber = document.getLineNumber(_startOffset);
                            _xblockexpression = DocumentUtil.getFirstNonSpaceCharOffset(document, lineNumber);
                        }
                        return Integer.valueOf(_xblockexpression);
                    };
                    final Integer nonSpaceCharOffset = _application.<Integer>runReadAction(_function_1);
                    TextRegion _textRegion = new TextRegion((nonSpaceCharOffset).intValue(), 0);
                    final ILocationInVirtualFile location = trace.getBestAssociatedLocation(_textRegion);
                    boolean _notEquals_1 = (!Objects.equal(location, null));
                    if (_notEquals_1) {
                        VirtualFileInProject _platformResource = location.getPlatformResource();
                        Project _project_1 = _platformResource.getProject();
                        VirtualFileInProject _platformResource_1 = location.getPlatformResource();
                        VirtualFile _file_1 = _platformResource_1.getFile();
                        ITextRegionWithLineInformation _textRegion_1 = location.getTextRegion();
                        int _lineNumber = _textRegion_1.getLineNumber();
                        final OpenFileDescriptor sourceFileDescriptor = new OpenFileDescriptor(_project_1,
                                _file_1, _lineNumber, 0);
                        final OpenFileHyperlinkInfo linkInfo = new OpenFileHyperlinkInfo(sourceFileDescriptor);
                        int _highlightStartOffset = resultItem.getHighlightStartOffset();
                        int _highlightEndOffset = resultItem.getHighlightEndOffset();
                        TextAttributes _highlightAttributes = resultItem.getHighlightAttributes();
                        return new Filter.Result(_highlightStartOffset, _highlightEndOffset, linkInfo,
                                _highlightAttributes);
                    }
                }
            }
        }
    }
    return result;
}

From source file:org.jetbrains.jet.plugin.filters.JetExceptionFilterTest.java

License:Apache License

private void doTest(@NotNull String fileName, @NotNull String className, int lineNumber) {
    if (rootDir == null) {
        configure();//from w  w w  . j  a  v a  2  s.  co m
    }
    assert rootDir != null;

    Filter filter = jetExceptionFilterFactory.create(GlobalSearchScope.allScope(myProject));

    String line = createStackTraceElementLine(fileName, className, lineNumber);
    Filter.Result result = filter.applyFilter(line, 0);

    assertNotNull(result);
    assertInstanceOf(result.hyperlinkInfo, OpenFileHyperlinkInfo.class);
    OpenFileHyperlinkInfo info = (OpenFileHyperlinkInfo) result.hyperlinkInfo;
    OpenFileDescriptor descriptor = info.getDescriptor();
    assertNotNull(descriptor);

    VirtualFile expectedFile = VfsUtil.findRelativeFile(fileName, rootDir);
    assertNotNull(expectedFile);
    assertEquals(expectedFile, descriptor.getFile());

    Document document = FileDocumentManager.getInstance().getDocument(expectedFile);
    assertNotNull(document);
    int expectedOffset = document.getLineStartOffset(lineNumber - 1);
    assertEquals(expectedOffset, descriptor.getOffset());
}

From source file:org.jetbrains.kotlin.idea.filters.JetExceptionFilterTest.java

License:Apache License

private void doTest(@NotNull String fileName, int lineNumber,
        @NotNull Function1<VirtualFile, String> className) {
    if (rootDir == null) {
        configure();/*from w  w w  . j  av a 2  s  . com*/
    }
    assert rootDir != null;

    Filter filter = new JetExceptionFilterFactory().create(GlobalSearchScope.allScope(myProject));

    VirtualFile expectedFile = VfsUtilCore.findRelativeFile(fileName, rootDir);
    assertNotNull(expectedFile);

    String line = createStackTraceElementLine(fileName, className.invoke(expectedFile), lineNumber);
    Filter.Result result = filter.applyFilter(line, 0);

    assertNotNull(result);
    HyperlinkInfo info = result.getFirstHyperlinkInfo();
    assertNotNull(info);
    assertInstanceOf(info, OpenFileHyperlinkInfo.class);
    OpenFileDescriptor descriptor = ((OpenFileHyperlinkInfo) info).getDescriptor();
    assertNotNull(descriptor);

    assertEquals(expectedFile, descriptor.getFile());

    Document document = FileDocumentManager.getInstance().getDocument(expectedFile);
    assertNotNull(document);
    int expectedOffset = document.getLineStartOffset(lineNumber - 1);
    assertEquals(expectedOffset, descriptor.getOffset());
}

From source file:org.jetbrains.plugins.ruby.addins.rspec.run.configuration.RSpecRunConfigurationType.java

License:Apache License

@Override
@Nullable//  w w w  .j  a v  a 2 s .  com
public RunnerAndConfigurationSettings createConfigurationByLocation(final @NotNull Location location) {
    // if not in psi file
    final PsiElement locationElement = location.getPsiElement();
    final RFile containingFile = RubyPsiUtil.getRFile(locationElement);
    final OpenFileDescriptor openedFile = location.getOpenFileDescriptor();

    if (containingFile == null || openedFile == null) {
        // if in psi directory
        if (locationElement instanceof PsiDirectory) {
            return createRunAllSpecsInFolderConf((PsiDirectory) locationElement);
        }
        return null;
    }

    final VirtualFile file = openedFile.getFile();
    if (!RubyVirtualFileScanner.isRubyFile(file)) {
        return null;
    }

    final Project project = location.getProject();
    // Configuration name
    final String name = file.getNameWithoutExtension();

    //if selected element is RSPEC Test File
    if (RSpecUtil.isRSpecTestFile(file)) {
        return createRunRSpecScriptTestsConf(project, file, name);
    }
    return null;
}

From source file:org.jetbrains.plugins.ruby.ruby.run.confuguration.RubyRunConfigurationType.java

License:Apache License

@Override
@Nullable//from   w w  w  .j  a  v a  2  s .  c o m
public RunnerAndConfigurationSettings createConfigurationByLocation(final @NotNull Location location) {
    // if not in psi file
    final PsiElement locationElement = location.getPsiElement();
    final RFile containingFile = RubyPsiUtil.getRFile(locationElement);
    final OpenFileDescriptor openedFile = location.getOpenFileDescriptor();

    if (containingFile == null || openedFile == null) {
        // if in psi directory
        if (locationElement instanceof PsiDirectory) {
            return createRunAllUnitTestsInFolderConf((PsiDirectory) locationElement);
        }
        return null;
    }

    final Project project = location.getProject();
    final VirtualFile file = openedFile.getFile();
    if (!RubyVirtualFileScanner.isRubyFile(file)) {
        return null;
    }
    // Should we create unit test configuration
    FileSemantic fileSemantic = FileSemantic.RUBY_SCRIPT;
    // Unit test configuration type
    TestType testType = null;
    // Configuration name
    String name = file.getNameWithoutExtension();
    String className = null;
    String methodName = null;

    // analyze selected element
    final RPsiElement rPsiElement = RubyPsiUtil.getCoveringRPsiElement(locationElement);
    if (rPsiElement != null) {
        final PsiFile psiFile = rPsiElement.getContainingFile();
        if (psiFile != null && RSpecUtil.isRSpecTestFile(psiFile.getVirtualFile())) {
            //if file is RSpec test file we should suggest to run it with rspec,
            //even if default test frame work is test_unit
            return null;
        }

        final RContainer currentContainer = (rPsiElement instanceof RContainer) ? (RContainer) rPsiElement
                : rPsiElement.getParentContainer();

        //In Ruby Class
        if (currentContainer instanceof RClass) {
            // "currentContainer" maybe nested class so we should
            // find the upper class contained him
            final RClass upperClass = RubyPsiUtil.getContainingUpperRClass(currentContainer);
            final Ref<FileSymbol> fSWrapper = new Ref<FileSymbol>();
            fileSemantic = (upperClass != null && RTestUnitUtil.isClassUnitTestCase(upperClass, fSWrapper))
                    ? FileSemantic.TEST_UNIT_TEST
                    : FileSemantic.RUBY_SCRIPT;

            if (fileSemantic == FileSemantic.TEST_UNIT_TEST) {
                name = className = RClassPresentationUtil.getRuntimeQualifiedNameInRubyTestMode(upperClass,
                        fSWrapper);

                testType = calculateTestTypeForClass(upperClass);
                if (testType == null) {
                    return null;
                }
            }
            //In Ruby Method
        } else if (currentContainer instanceof RMethod) {
            final RClass upperClass = RubyPsiUtil.getContainingUpperRClass(currentContainer);

            final Ref<FileSymbol> fSWrapper = new Ref<FileSymbol>();
            fileSemantic = (upperClass != null && RTestUnitUtil.isClassUnitTestCase(upperClass, fSWrapper))
                    ? FileSemantic.TEST_UNIT_TEST
                    : FileSemantic.RUBY_SCRIPT;

            methodName = currentContainer.getName();

            if (fileSemantic == FileSemantic.TEST_UNIT_TEST) {
                className = RClassPresentationUtil.getRuntimeQualifiedNameInRubyTestMode(upperClass, fSWrapper);
                // Test Method is TestCase method which name starts with prefix "test"
                if (upperClass == currentContainer.getParentContainer()
                        && RTestUnitUtil.hasValidTestNameAndNotSingleton((RVirtualMethod) currentContainer)) {
                    testType = AbstractRubyRunConfiguration.TestType.TEST_METHOD;
                    name = methodName;
                } else {
                    //Create configuration for class
                    name = className;

                    testType = calculateTestTypeForClass(upperClass);
                    if (testType == null) {
                        return null;
                    }
                }
            }
            //In Ruby File
        } else if (currentContainer instanceof RFile) {
            fileSemantic = (RTestUnitUtil.checkForAnotherTestCases(null, (RFile) currentContainer))
                    ? FileSemantic.TEST_UNIT_TEST
                    : FileSemantic.RUBY_SCRIPT;
            testType = AbstractRubyRunConfiguration.TestType.TEST_SCRIPT;
        }
    }

    // create corresponding configuration
    final RubyRunConfigurationFactory factory;
    switch (fileSemantic) {
    case TEST_UNIT_TEST:
        factory = myUnitTestsFactory;
        break;
    case RUBY_SCRIPT:
        factory = myAppFactory;
        break;
    default:
        factory = null;
    }

    final RunnerAndConfigurationSettings settings = RunManager.getInstance(project).createRunConfiguration(name,
            factory);

    final AbstractRubyRunConfiguration templateConfiguration = (AbstractRubyRunConfiguration) settings
            .getConfiguration();

    // setupFileCache not default configuration settings
    // module
    final Module module = RubyRunConfigurationUtil.getCorrespondingModule(project, file, templateConfiguration);
    if (module == null) { //TODO module == null => choose first module's some sdk!
        return null;
    }

    //ignores template configuration's defaults
    templateConfiguration.setModule(module);

    //keeps template configuration's defaults
    if (TextUtil.isEmptyOrWhitespaces(templateConfiguration.getWorkingDirectory())) {
        // sets working dir
        final VirtualFile parentDir = file.getParent();
        final String dir = parentDir != null ? parentDir.getPath()
                : RailsFacetUtil.getRailsAppHomeDirPath(module);
        templateConfiguration.setWorkingDirectory(dir);
    }

    //specific settings
    switch (fileSemantic) {
    case RUBY_SCRIPT:
        //settings for ruby scripts
        initScriptConfiguration(file, templateConfiguration);
        break;
    case TEST_UNIT_TEST:
        // settings for unit tests
        initUnitTestConfiguration(file, testType, className, methodName, templateConfiguration);
        break;
    }
    return settings;
}

From source file:org.jetbrains.plugins.ruby.ruby.run.filters.OpenIOFileHyperlinkInfo.java

License:Apache License

@Override
public void navigate(final Project project) {
    ApplicationManager.getApplication().runReadAction(new Runnable() {
        @Override/*from w  w  w. j  a va  2  s.  c  om*/
        public void run() {
            final OpenFileDescriptor fileDesc = getDescriptor();
            if (fileDesc == null) {
                return;
            }
            if (fileDesc.getFile().isValid()) {
                FileEditorManager.getInstance(project).openTextEditor(fileDesc, true);
            }
        }
    });
}

From source file:org.napile.idea.thermit.config.execution.TreeView.java

License:Apache License

@Nullable
public Object getData(String dataId) {
    if (PlatformDataKeys.NAVIGATABLE.is(dataId)) {
        MessageNode item = getSelectedItem();
        if (item == null)
            return null;
        if (isValid(item.getFile())) {
            return new OpenFileDescriptor(myProject, item.getFile(), item.getOffset());
        }/*w  w w.  ja va 2s .  com*/
        if (item.getType() == AntBuildMessageView.MessageType.TARGET) {
            final OpenFileDescriptor descriptor = getDescriptorForTargetNode(item);
            if (descriptor != null && isValid(descriptor.getFile())) {
                return descriptor;
            }
        }
        if (item.getType() == AntBuildMessageView.MessageType.TASK) {
            final OpenFileDescriptor descriptor = getDescriptorForTaskNode(item);
            if (descriptor != null && isValid(descriptor.getFile())) {
                return descriptor;
            }
        }
    }
    return null;
}

From source file:org.napile.idea.thermit.config.explorer.AntExplorer.java

License:Apache License

@Nullable
public Object getData(@NonNls String dataId) {
    if (PlatformDataKeys.NAVIGATABLE.is(dataId)) {
        final AntBuildFile buildFile = getCurrentBuildFile();
        if (buildFile == null) {
            return null;
        }/*from   w ww . ja va2  s.c  om*/
        final VirtualFile file = buildFile.getVirtualFile();
        if (file == null) {
            return null;
        }
        final TreePath treePath = myTree.getLeadSelectionPath();
        if (treePath == null) {
            return null;
        }
        final DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath.getLastPathComponent();
        if (node == null) {
            return null;
        }
        if (node.getUserObject() instanceof AntTargetNodeDescriptor) {
            final AntTargetNodeDescriptor targetNodeDescriptor = (AntTargetNodeDescriptor) node.getUserObject();
            final AntBuildTargetBase buildTarget = targetNodeDescriptor.getTarget();
            final OpenFileDescriptor descriptor = buildTarget.getOpenFileDescriptor();
            if (descriptor != null) {
                final VirtualFile descriptorFile = descriptor.getFile();
                if (descriptorFile.isValid()) {
                    return descriptor;
                }
            }
        }
        if (file.isValid()) {
            return new OpenFileDescriptor(myProject, file);
        }
    } else if (PlatformDataKeys.HELP_ID.is(dataId)) {
        return HelpID.ANT;
    } else if (PlatformDataKeys.TREE_EXPANDER.is(dataId)) {
        return myProject != null ? myTreeExpander : null;
    } else if (PlatformDataKeys.VIRTUAL_FILE_ARRAY.is(dataId)) {
        final TreePath[] paths = myTree.getSelectionPaths();
        if (paths == null) {
            return null;
        }
        final ArrayList<VirtualFile> result = new ArrayList<VirtualFile>();
        for (final TreePath path : paths) {
            for (DefaultMutableTreeNode node = (DefaultMutableTreeNode) path
                    .getLastPathComponent(); node != null; node = (DefaultMutableTreeNode) node.getParent()) {
                final Object userObject = node.getUserObject();
                if (!(userObject instanceof AntBuildFileNodeDescriptor)) {
                    continue;
                }
                final AntBuildFile buildFile = ((AntBuildFileNodeDescriptor) userObject).getBuildFile();
                if (buildFile != null) {
                    final VirtualFile virtualFile = buildFile.getVirtualFile();
                    if (virtualFile != null && virtualFile.isValid()) {
                        result.add(virtualFile);
                    }
                }
                break;
            }
        }
        if (result.size() == 0) {
            return null;
        }
        return VfsUtil.toVirtualFileArray(result);
    }
    return super.getData(dataId);
}