Object (@NotNull String dataId) { if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) { VcsTreeModelData treeSelection = VcsTreeModelData.selected(this); VcsTreeModelData exactSelection = VcsTreeModelData.exactlySelected(this); DataProvider ourDataProvider = slowId -> getSlowData(myProject, treeSelection, exactSelection, slowId); DataProvider treeDataProvider = (DataProvider)VcsTreeModelData.getData(myProject, this, dataId); DataProvider superDataProvider = (DataProvider)super.getData(dataId); return CompositeDataProvider.compose(Arrays.asList(ourDataProvider, treeDataProvider, superDataProvider)); } Object ourData = getFastData(dataId); if (ourData != null) return ourData; Object treeData = VcsTreeModelData.getData(myProject, this, dataId); if (treeData != null) return null; return super.getData(dataId); }