1 /**
2  * UGENE - Integrated Bioinformatics Tools.
3  * Copyright (C) 2008-2021 UniPro <ugene@unipro.ru>
4  * http://ugene.net
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19  * MA 02110-1301, USA.
20  */
21 
22 #ifndef _U2_APPCONTEXT_IMPL_
23 #define _U2_APPCONTEXT_IMPL_
24 
25 #include <U2Core/AppContext.h>
26 #include <U2Core/global.h>
27 
28 namespace U2 {
29 
30 class U2PRIVATE_EXPORT AppContextImpl : public AppContext {
31     Q_OBJECT
32 public:
AppContextImpl()33     AppContextImpl() {
34         instance = this;
35 
36         aaSupport = nullptr;
37         alignmentAlgorithmsRegistry = nullptr;
38         appFileStorage = nullptr;
39         as = nullptr;
40         asg = nullptr;
41         asr = nullptr;
42         assemblyConsensusAlgoRegistry = nullptr;
43         cdsfr = nullptr;
44         cfr = nullptr;
45         cgr = nullptr;
46         cmdLineRegistry = nullptr;
47         credentialsAsker = nullptr;
48         dal = nullptr;
49         dashboardInfoRegistry = nullptr;
50         dataBaseRegistry = nullptr;
51         dbiRegistry = nullptr;
52         dbxr = nullptr;
53         dfr = nullptr;
54         dnaAssemblyAlgRegistry = nullptr;
55         dpr = nullptr;
56         dtr = nullptr;
57         externalToolRegistry = nullptr;
58         genomeAssemblyAlgRegistry = nullptr;
59         gs = nullptr;
60         io = nullptr;
61         mcsr = nullptr;
62         mhsr = nullptr;
63         msaConsensusAlgoRegistry = nullptr;
64         msaDistanceAlgoRegistry = nullptr;
65         msfr = nullptr;
66         mw = nullptr;
67         oclgr = nullptr;
68         opCommonWidgetFactoryRegistry = nullptr;
69         opWidgetFactoryRegistry = nullptr;
70         ovfr = nullptr;
71         passwordStorage = nullptr;
72         pf = nullptr;
73         pl = nullptr;
74         plv = nullptr;
75         prj = nullptr;
76         projectFilterTaskRegistry = nullptr;
77         protocolInfoRegistry = nullptr;
78         prs = nullptr;
79         ps = nullptr;
80         pv = nullptr;
81         pwmConversionAlgoRegistry = nullptr;
82         qdafr = nullptr;
83         rdc = nullptr;
84         remoteMachineMonitor = nullptr;
85         rfr = nullptr;
86         rt = nullptr;
87         saar = nullptr;
88         secStructPredictRegistry = nullptr;
89         smr = nullptr;
90         splicedAlignmentTaskRegistry = nullptr;
91         sr = nullptr;
92         ss = nullptr;
93         str = nullptr;
94         swar = nullptr;
95         swmarntr = nullptr;
96         swrfr = nullptr;
97         tf = nullptr;
98         treeGeneratorRegistry = nullptr;
99         ts = nullptr;
100         udrSchemaRegistry = nullptr;
101         virtualFileSystemRegistry = nullptr;
102         welcomePageActionRegistry = nullptr;
103         workflowScriptRegistry = nullptr;
104 
105         guiMode = false;
106         activeWindow = "";
107         workingDirectoryPath = "";
108     }
109 
110     ~AppContextImpl();
111 
setPluginSupport(PluginSupport * _ps)112     void setPluginSupport(PluginSupport *_ps) {
113         assert(ps == nullptr || _ps == nullptr);
114         ps = _ps;
115     }
116 
setServiceRegistry(ServiceRegistry * _sr)117     void setServiceRegistry(ServiceRegistry *_sr) {
118         assert(sr == nullptr || _sr == nullptr);
119         sr = _sr;
120     }
121 
setProjectLoader(ProjectLoader * _pl)122     void setProjectLoader(ProjectLoader *_pl) {
123         assert(pl == nullptr || _pl == nullptr);
124         pl = _pl;
125     }
126 
setProject(Project * _prj)127     void setProject(Project *_prj) {
128         assert(prj == nullptr || _prj == nullptr);
129         prj = _prj;
130     }
131 
setProjectService(ProjectService * _prs)132     void setProjectService(ProjectService *_prs) {
133         assert(prs == nullptr || _prs == nullptr);
134         prs = _prs;
135     }
136 
setMainWindow(MainWindow * _mw)137     void setMainWindow(MainWindow *_mw) {
138         assert(mw == nullptr || _mw == nullptr);
139         mw = _mw;
140     }
141 
setProjectView(ProjectView * _pv)142     void setProjectView(ProjectView *_pv) {
143         assert(pv == nullptr || _pv == nullptr);
144         pv = _pv;
145     }
146 
setPluginViewer(PluginViewer * _plv)147     void setPluginViewer(PluginViewer *_plv) {
148         assert(plv == nullptr || _plv == nullptr);
149         plv = _plv;
150     }
151 
setSettings(Settings * _ss)152     void setSettings(Settings *_ss) {
153         assert(ss == nullptr || _ss == nullptr);
154         ss = _ss;
155     }
156 
setGlobalSettings(Settings * _gs)157     void setGlobalSettings(Settings *_gs) {
158         assert(gs == nullptr || _gs == nullptr);
159         gs = _gs;
160     }
161 
setAppSettings(AppSettings * _as)162     void setAppSettings(AppSettings *_as) {
163         assert(as || _as);
164         as = _as;
165     }
166 
setAppSettingsGUI(AppSettingsGUI * _asg)167     void setAppSettingsGUI(AppSettingsGUI *_asg) {
168         assert(asg == nullptr || _asg == nullptr);
169         asg = _asg;
170     }
171 
setDocumentFormatRegistry(DocumentFormatRegistry * _dfr)172     void setDocumentFormatRegistry(DocumentFormatRegistry *_dfr) {
173         assert(dfr == nullptr || _dfr == nullptr);
174         dfr = _dfr;
175     }
176 
setIOAdapterRegistry(IOAdapterRegistry * _io)177     void setIOAdapterRegistry(IOAdapterRegistry *_io) {
178         assert(io == nullptr || _io == nullptr);
179         io = _io;
180     }
181 
setDNATranslationRegistry(DNATranslationRegistry * _dtr)182     void setDNATranslationRegistry(DNATranslationRegistry *_dtr) {
183         assert(dtr == nullptr || _dtr == nullptr);
184         dtr = _dtr;
185     }
186 
setDNAAlphabetRegistry(DNAAlphabetRegistry * _dal)187     void setDNAAlphabetRegistry(DNAAlphabetRegistry *_dal) {
188         assert(dal == nullptr || _dal == nullptr);
189         dal = _dal;
190     }
191 
setObjectViewFactoryRegistry(GObjectViewFactoryRegistry * _ovfr)192     void setObjectViewFactoryRegistry(GObjectViewFactoryRegistry *_ovfr) {
193         assert(ovfr == nullptr || _ovfr == nullptr);
194         ovfr = _ovfr;
195     }
196 
setTaskScheduler(TaskScheduler * _ts)197     void setTaskScheduler(TaskScheduler *_ts) {
198         assert(ts == nullptr || _ts == nullptr);
199         ts = _ts;
200     }
201 
setResourceTracker(ResourceTracker * _rt)202     void setResourceTracker(ResourceTracker *_rt) {
203         assert(rt == nullptr || _rt == nullptr);
204         rt = _rt;
205     }
206 
setAnnotationSettingsRegistry(AnnotationSettingsRegistry * _asr)207     void setAnnotationSettingsRegistry(AnnotationSettingsRegistry *_asr) {
208         assert(asr == nullptr || _asr == nullptr);
209         asr = _asr;
210     }
211 
setTestFramework(TestFramework * _tf)212     void setTestFramework(TestFramework *_tf) {
213         assert(tf || _tf);
214         tf = _tf;
215     }
216 
setDBXRefRegistry(DBXRefRegistry * _dbxr)217     void setDBXRefRegistry(DBXRefRegistry *_dbxr) {
218         assert(dbxr == nullptr || _dbxr == nullptr);
219         dbxr = _dbxr;
220     }
221 
setSubstMatrixRegistry(SubstMatrixRegistry * _smr)222     void setSubstMatrixRegistry(SubstMatrixRegistry *_smr) {
223         assert(smr == nullptr || _smr == nullptr);
224         smr = _smr;
225     }
226 
setSmithWatermanTaskFactoryRegistry(SmithWatermanTaskFactoryRegistry * _swar)227     void setSmithWatermanTaskFactoryRegistry(SmithWatermanTaskFactoryRegistry *_swar) {
228         assert(swar == nullptr || _swar == nullptr);
229         swar = _swar;
230     }
231 
setMolecularSurfaceFactoryRegistry(MolecularSurfaceFactoryRegistry * _msfr)232     void setMolecularSurfaceFactoryRegistry(MolecularSurfaceFactoryRegistry *_msfr) {
233         assert(msfr == nullptr || _msfr == nullptr);
234         msfr = _msfr;
235     }
236 
setSWResultFilterRegistry(SWResultFilterRegistry * _swrfr)237     void setSWResultFilterRegistry(SWResultFilterRegistry *_swrfr) {
238         assert(swrfr == nullptr || _swrfr == nullptr);
239         swrfr = _swrfr;
240     }
241 
setSWMulAlignResultNamesTagsRegistry(SWMulAlignResultNamesTagsRegistry * _swmarntr)242     void setSWMulAlignResultNamesTagsRegistry(SWMulAlignResultNamesTagsRegistry *_swmarntr) {
243         assert(swmarntr == nullptr || _swmarntr == nullptr);
244         swmarntr = _swmarntr;
245     }
246 
setMsaColorSchemeRegistry(MsaColorSchemeRegistry * _mcsr)247     void setMsaColorSchemeRegistry(MsaColorSchemeRegistry *_mcsr) {
248         assert(mcsr == nullptr || _mcsr == nullptr);
249         mcsr = _mcsr;
250     }
251 
setMsaHighlightingSchemeRegistry(MsaHighlightingSchemeRegistry * _mhsr)252     void setMsaHighlightingSchemeRegistry(MsaHighlightingSchemeRegistry *_mhsr) {
253         assert(mhsr == nullptr || _mhsr == nullptr);
254         mhsr = _mhsr;
255     }
256 
setSecStructPedictAlgRegistry(SecStructPredictAlgRegistry * _sspar)257     void setSecStructPedictAlgRegistry(SecStructPredictAlgRegistry *_sspar) {
258         assert(secStructPredictRegistry == nullptr || _sspar == nullptr);
259         secStructPredictRegistry = _sspar;
260     }
261 
setCudaGpuRegistry(CudaGpuRegistry * _cgr)262     void setCudaGpuRegistry(CudaGpuRegistry *_cgr) {
263         assert(cgr == nullptr || _cgr == nullptr);
264         cgr = _cgr;
265     }
266 
setOpenCLGpuRegistry(OpenCLGpuRegistry * _oclgr)267     void setOpenCLGpuRegistry(OpenCLGpuRegistry *_oclgr) {
268         assert(oclgr == nullptr || _oclgr == nullptr);
269         oclgr = _oclgr;
270     }
271 
setRecentlyDownloadedCache(RecentlyDownloadedCache * _rdc)272     void setRecentlyDownloadedCache(RecentlyDownloadedCache *_rdc) {
273         assert(rdc == nullptr || _rdc == nullptr);
274         rdc = _rdc;
275     }
276 
setDataPathRegistry(U2DataPathRegistry * _dpr)277     void setDataPathRegistry(U2DataPathRegistry *_dpr) {
278         assert(dpr == nullptr || _dpr == nullptr);
279         dpr = _dpr;
280     }
281 
setScriptingToolRegistry(ScriptingToolRegistry * _str)282     void setScriptingToolRegistry(ScriptingToolRegistry *_str) {
283         assert(str == nullptr || _str == nullptr);
284         str = _str;
285     }
286 
setPasteFactory(PasteFactory * _pf)287     void setPasteFactory(PasteFactory *_pf) {
288         assert(pf == nullptr || _pf == nullptr);
289         pf = _pf;
290     }
291 
setDashboardInfoRegistry(DashboardInfoRegistry * _dashboardInfoRegistry)292     void setDashboardInfoRegistry(DashboardInfoRegistry *_dashboardInfoRegistry) {
293         assert(dashboardInfoRegistry == nullptr || _dashboardInfoRegistry == nullptr);
294         dashboardInfoRegistry = _dashboardInfoRegistry;
295     }
296 
setProtocolInfoRegistry(ProtocolInfoRegistry * pr)297     void setProtocolInfoRegistry(ProtocolInfoRegistry *pr) {
298         assert(nullptr == protocolInfoRegistry || nullptr == pr);
299         protocolInfoRegistry = pr;
300     }
301 
setRemoteMachineMonitor(RemoteMachineMonitor * rm)302     void setRemoteMachineMonitor(RemoteMachineMonitor *rm) {
303         assert(nullptr == remoteMachineMonitor || nullptr == rm);
304         remoteMachineMonitor = rm;
305     }
306 
setPhyTreeGeneratorRegistry(PhyTreeGeneratorRegistry * genRegistry)307     void setPhyTreeGeneratorRegistry(PhyTreeGeneratorRegistry *genRegistry) {
308         assert(nullptr == treeGeneratorRegistry || nullptr == genRegistry);
309         treeGeneratorRegistry = genRegistry;
310     }
311 
setMSAConsensusAlgorithmRegistry(MSAConsensusAlgorithmRegistry * reg)312     void setMSAConsensusAlgorithmRegistry(MSAConsensusAlgorithmRegistry *reg) {
313         assert(reg == nullptr || msaConsensusAlgoRegistry == nullptr);
314         msaConsensusAlgoRegistry = reg;
315     }
316 
setMSADistanceAlgorithmRegistry(MSADistanceAlgorithmRegistry * reg)317     void setMSADistanceAlgorithmRegistry(MSADistanceAlgorithmRegistry *reg) {
318         assert(reg == nullptr || msaDistanceAlgoRegistry == nullptr);
319         msaDistanceAlgoRegistry = reg;
320     }
321 
setAssemblyConsensusAlgorithmRegistry(AssemblyConsensusAlgorithmRegistry * reg)322     void setAssemblyConsensusAlgorithmRegistry(AssemblyConsensusAlgorithmRegistry *reg) {
323         assert(reg == nullptr || assemblyConsensusAlgoRegistry == nullptr);
324         assemblyConsensusAlgoRegistry = reg;
325     }
326 
setPWMConversionAlgorithmRegistry(PWMConversionAlgorithmRegistry * reg)327     void setPWMConversionAlgorithmRegistry(PWMConversionAlgorithmRegistry *reg) {
328         assert(reg == nullptr || pwmConversionAlgoRegistry == nullptr);
329         pwmConversionAlgoRegistry = reg;
330     }
331 
setCMDLineRegistry(CMDLineRegistry * r)332     void setCMDLineRegistry(CMDLineRegistry *r) {
333         assert(cmdLineRegistry == nullptr || r == nullptr);
334         cmdLineRegistry = r;
335     }
336 
setVirtualFileSystemRegistry(VirtualFileSystemRegistry * r)337     void setVirtualFileSystemRegistry(VirtualFileSystemRegistry *r) {
338         assert(virtualFileSystemRegistry == nullptr || r == nullptr);
339         virtualFileSystemRegistry = r;
340     }
341 
setDnaAssemblyAlgRegistry(DnaAssemblyAlgRegistry * r)342     void setDnaAssemblyAlgRegistry(DnaAssemblyAlgRegistry *r) {
343         assert(dnaAssemblyAlgRegistry == nullptr || r == nullptr);
344         dnaAssemblyAlgRegistry = r;
345     }
346 
setGenomeAssemblyAlgRegistry(GenomeAssemblyAlgRegistry * r)347     void setGenomeAssemblyAlgRegistry(GenomeAssemblyAlgRegistry *r) {
348         assert(genomeAssemblyAlgRegistry == nullptr || r == nullptr);
349         genomeAssemblyAlgRegistry = r;
350     }
351 
setDataBaseRegistry(DataBaseRegistry * dbr)352     void setDataBaseRegistry(DataBaseRegistry *dbr) {
353         assert(dataBaseRegistry == nullptr || dbr == nullptr);
354         dataBaseRegistry = dbr;
355     }
356 
setExternalToolRegistry(ExternalToolRegistry * _etr)357     void setExternalToolRegistry(ExternalToolRegistry *_etr) {
358         assert(externalToolRegistry == nullptr || _etr == nullptr);
359         externalToolRegistry = _etr;
360     }
361 
setRepeatFinderTaskFactoryRegistry(RepeatFinderTaskFactoryRegistry * _rfr)362     void setRepeatFinderTaskFactoryRegistry(RepeatFinderTaskFactoryRegistry *_rfr) {
363         assert(rfr == nullptr || _rfr == nullptr);
364         rfr = _rfr;
365     }
366 
setQDActorFactoryRegistry(QDActorPrototypeRegistry * _queryfactoryRegistry)367     void setQDActorFactoryRegistry(QDActorPrototypeRegistry *_queryfactoryRegistry) {
368         assert(qdafr == nullptr || _queryfactoryRegistry == nullptr);
369         qdafr = _queryfactoryRegistry;
370     }
371 
setAutoAnnotationsSupport(AutoAnnotationsSupport * _aaSupport)372     void setAutoAnnotationsSupport(AutoAnnotationsSupport *_aaSupport) {
373         assert(aaSupport == nullptr || _aaSupport == nullptr);
374         aaSupport = _aaSupport;
375     }
376 
setDbiRegistry(U2DbiRegistry * _dbiRegistry)377     void setDbiRegistry(U2DbiRegistry *_dbiRegistry) {
378         assert((nullptr == dbiRegistry) || (nullptr == _dbiRegistry));
379         dbiRegistry = _dbiRegistry;
380     }
381 
setUdrSchemaRegistry(UdrSchemaRegistry * _udrSchemaRegistry)382     void setUdrSchemaRegistry(UdrSchemaRegistry *_udrSchemaRegistry) {
383         assert((nullptr == udrSchemaRegistry) || (nullptr == _udrSchemaRegistry));
384         udrSchemaRegistry = _udrSchemaRegistry;
385     }
386 
setCDSearchFactoryRegistry(CDSearchFactoryRegistry * _cdsfr)387     void setCDSearchFactoryRegistry(CDSearchFactoryRegistry *_cdsfr) {
388         assert((nullptr == cdsfr) || (nullptr == _cdsfr));
389         cdsfr = _cdsfr;
390     }
391 
setSplicedAlignmentTaskRegistry(SplicedAlignmentTaskRegistry * tr)392     void setSplicedAlignmentTaskRegistry(SplicedAlignmentTaskRegistry *tr) {
393         assert((nullptr == splicedAlignmentTaskRegistry) || (nullptr == tr));
394         splicedAlignmentTaskRegistry = tr;
395     }
396 
setOPCommonWidgetFactoryRegistry(OPCommonWidgetFactoryRegistry * _opCommonWidgetFactoryRegistry)397     void setOPCommonWidgetFactoryRegistry(OPCommonWidgetFactoryRegistry *_opCommonWidgetFactoryRegistry) {
398         assert((nullptr == opCommonWidgetFactoryRegistry) || (nullptr == _opCommonWidgetFactoryRegistry));
399         opCommonWidgetFactoryRegistry = _opCommonWidgetFactoryRegistry;
400     }
401 
setOPWidgetFactoryRegistry(OPWidgetFactoryRegistry * _opWidgetFactoryRegistry)402     void setOPWidgetFactoryRegistry(OPWidgetFactoryRegistry *_opWidgetFactoryRegistry) {
403         assert((nullptr == opWidgetFactoryRegistry) || (nullptr == _opWidgetFactoryRegistry));
404         opWidgetFactoryRegistry = _opWidgetFactoryRegistry;
405     }
406 
setStructuralAlignmentAlgorithmRegistry(StructuralAlignmentAlgorithmRegistry * _saar)407     void setStructuralAlignmentAlgorithmRegistry(StructuralAlignmentAlgorithmRegistry *_saar) {
408         assert(saar == nullptr || _saar == nullptr);
409         saar = _saar;
410     }
411 
setWorkflowScriptRegistry(WorkflowScriptRegistry * _wsr)412     void setWorkflowScriptRegistry(WorkflowScriptRegistry *_wsr) {
413         assert(workflowScriptRegistry == nullptr || _wsr == nullptr);
414         workflowScriptRegistry = _wsr;
415     }
416 
setCredentialsAsker(CredentialsAsker * _credentialsAsker)417     void setCredentialsAsker(CredentialsAsker *_credentialsAsker) {
418         assert(credentialsAsker == nullptr || _credentialsAsker == nullptr);
419         credentialsAsker = _credentialsAsker;
420     }
421 
setPasswordStorage(PasswordStorage * _passwordStorage)422     void setPasswordStorage(PasswordStorage *_passwordStorage) {
423         assert(passwordStorage == nullptr || _passwordStorage == nullptr);
424         passwordStorage = _passwordStorage;
425     }
426 
setAppFileStorage(AppFileStorage * afs)427     void setAppFileStorage(AppFileStorage *afs) {
428         assert(appFileStorage == nullptr || afs == nullptr);
429         appFileStorage = afs;
430     }
431 
setAlignmentAlgorithmsRegistry(AlignmentAlgorithmsRegistry * _alignmentAlgorithmsRegistry)432     void setAlignmentAlgorithmsRegistry(AlignmentAlgorithmsRegistry *_alignmentAlgorithmsRegistry) {
433         assert(alignmentAlgorithmsRegistry == nullptr || _alignmentAlgorithmsRegistry == nullptr);
434         alignmentAlgorithmsRegistry = _alignmentAlgorithmsRegistry;
435     }
436 
setConvertFactoryRegistry(ConvertFactoryRegistry * _cfr)437     void setConvertFactoryRegistry(ConvertFactoryRegistry *_cfr) {
438         assert(cfr == nullptr || _cfr == nullptr);
439         cfr = _cfr;
440     }
441 
setWelcomePageActionRegistry(IdRegistry<WelcomePageAction> * value)442     void setWelcomePageActionRegistry(IdRegistry<WelcomePageAction> *value) {
443         assert(welcomePageActionRegistry == nullptr || value == nullptr);
444         welcomePageActionRegistry = value;
445     }
446 
setProjectFilterTaskRegistry(ProjectFilterTaskRegistry * value)447     void setProjectFilterTaskRegistry(ProjectFilterTaskRegistry *value) {
448         assert(projectFilterTaskRegistry == nullptr || value == nullptr);
449         projectFilterTaskRegistry = value;
450     }
451 
setGUIMode(bool v)452     void setGUIMode(bool v) {
453         guiMode = v;
454     }
455 
_setActiveWindowName(const QString & name)456     void _setActiveWindowName(const QString &name) {
457         activeWindow = name;
458     }
459 
setWorkingDirectoryPath(const QString & path)460     void setWorkingDirectoryPath(const QString &path) {
461         assert(!path.isEmpty());
462         workingDirectoryPath = path;
463     }
464 
465     static AppContextImpl *getApplicationContext();
466 
467 protected:
_getPluginSupport()468     virtual PluginSupport *_getPluginSupport() const {
469         return ps;
470     }
_getServiceRegistry()471     virtual ServiceRegistry *_getServiceRegistry() const {
472         return sr;
473     }
_getProjectLoader()474     virtual ProjectLoader *_getProjectLoader() const {
475         return pl;
476     }
_getProject()477     virtual Project *_getProject() const {
478         return prj;
479     }
_getProjectService()480     virtual ProjectService *_getProjectService() const {
481         return prs;
482     }
_getMainWindow()483     virtual MainWindow *_getMainWindow() const {
484         return mw;
485     }
_getProjectView()486     virtual ProjectView *_getProjectView() const {
487         return pv;
488     }
_getPluginViewer()489     virtual PluginViewer *_getPluginViewer() const {
490         return plv;
491     }
_getSettings()492     virtual Settings *_getSettings() const {
493         return ss;
494     }
_getGlobalSettings()495     virtual Settings *_getGlobalSettings() const {
496         return gs;
497     }
_getAppSettings()498     virtual AppSettings *_getAppSettings() const {
499         return as;
500     }
_getAppSettingsGUI()501     virtual AppSettingsGUI *_getAppSettingsGUI() const {
502         return asg;
503     }
504 
_getDocumentFormatRegistry()505     virtual DocumentFormatRegistry *_getDocumentFormatRegistry() const {
506         return dfr;
507     }
_getIOAdapterRegistry()508     virtual IOAdapterRegistry *_getIOAdapterRegistry() const {
509         return io;
510     }
_getDNATranslationRegistry()511     virtual DNATranslationRegistry *_getDNATranslationRegistry() const {
512         return dtr;
513     }
_getDNAAlphabetRegistry()514     virtual DNAAlphabetRegistry *_getDNAAlphabetRegistry() const {
515         return dal;
516     }
_getObjectViewFactoryRegistry()517     virtual GObjectViewFactoryRegistry *_getObjectViewFactoryRegistry() const {
518         return ovfr;
519     }
_getTaskScheduler()520     virtual TaskScheduler *_getTaskScheduler() const {
521         return ts;
522     }
_getResourceTracker()523     virtual ResourceTracker *_getResourceTracker() const {
524         return rt;
525     }
_getAnnotationsSettingsRegistry()526     virtual AnnotationSettingsRegistry *_getAnnotationsSettingsRegistry() const {
527         return asr;
528     }
_getTestFramework()529     virtual TestFramework *_getTestFramework() const {
530         return tf;
531     }
_getDBXRefRegistry()532     virtual DBXRefRegistry *_getDBXRefRegistry() const {
533         return dbxr;
534     }
_getSubstMatrixRegistry()535     virtual SubstMatrixRegistry *_getSubstMatrixRegistry() const {
536         return smr;
537     }
_getSmithWatermanTaskFactoryRegistry()538     virtual SmithWatermanTaskFactoryRegistry *_getSmithWatermanTaskFactoryRegistry() const {
539         return swar;
540     }
_getPhyTreeGeneratorRegistry()541     virtual PhyTreeGeneratorRegistry *_getPhyTreeGeneratorRegistry() const {
542         return treeGeneratorRegistry;
543     }
544 
_getMolecularSurfaceFactoryRegistry()545     virtual MolecularSurfaceFactoryRegistry *_getMolecularSurfaceFactoryRegistry() const {
546         return msfr;
547     }
_getSWResultFilterRegistry()548     virtual SWResultFilterRegistry *_getSWResultFilterRegistry() const {
549         return swrfr;
550     }
_getSWMulAlignResultNamesTagsRegistry()551     virtual SWMulAlignResultNamesTagsRegistry *_getSWMulAlignResultNamesTagsRegistry() const {
552         return swmarntr;
553     }
_getMsaColorSchemeRegistry()554     virtual MsaColorSchemeRegistry *_getMsaColorSchemeRegistry() const {
555         return mcsr;
556     }
_getMsaHighlightingSchemeRegistry()557     virtual MsaHighlightingSchemeRegistry *_getMsaHighlightingSchemeRegistry() const {
558         return mhsr;
559     }
_getSecStructPredictAlgRegistry()560     virtual SecStructPredictAlgRegistry *_getSecStructPredictAlgRegistry() const {
561         return secStructPredictRegistry;
562     }
_getCudaGpuRegistry()563     virtual CudaGpuRegistry *_getCudaGpuRegistry() const {
564         return cgr;
565     }
_getOpenCLGpuRegistry()566     virtual OpenCLGpuRegistry *_getOpenCLGpuRegistry() const {
567         return oclgr;
568     }
_getRecentlyDownloadedCache()569     virtual RecentlyDownloadedCache *_getRecentlyDownloadedCache() const {
570         return rdc;
571     }
_getProtocolInfoRegistry()572     virtual ProtocolInfoRegistry *_getProtocolInfoRegistry() const {
573         return protocolInfoRegistry;
574     }
_getRemoteMachineMonitor()575     virtual RemoteMachineMonitor *_getRemoteMachineMonitor() const {
576         return remoteMachineMonitor;
577     }
_getCMDLineRegistry()578     virtual CMDLineRegistry *_getCMDLineRegistry() const {
579         return cmdLineRegistry;
580     }
_getMSAConsensusAlgorithmRegistry()581     virtual MSAConsensusAlgorithmRegistry *_getMSAConsensusAlgorithmRegistry() const {
582         return msaConsensusAlgoRegistry;
583     }
_getMSADistanceAlgorithmRegistry()584     virtual MSADistanceAlgorithmRegistry *_getMSADistanceAlgorithmRegistry() const {
585         return msaDistanceAlgoRegistry;
586     }
_getAssemblyConsensusAlgorithmRegistry()587     virtual AssemblyConsensusAlgorithmRegistry *_getAssemblyConsensusAlgorithmRegistry() const {
588         return assemblyConsensusAlgoRegistry;
589     }
_getPWMConversionAlgorithmRegistry()590     virtual PWMConversionAlgorithmRegistry *_getPWMConversionAlgorithmRegistry() const {
591         return pwmConversionAlgoRegistry;
592     }
_getVirtualFileSystemRegistry()593     virtual VirtualFileSystemRegistry *_getVirtualFileSystemRegistry() const {
594         return virtualFileSystemRegistry;
595     }
_getDnaAssemblyAlgRegistry()596     virtual DnaAssemblyAlgRegistry *_getDnaAssemblyAlgRegistry() const {
597         return dnaAssemblyAlgRegistry;
598     }
_getGenomeAssemblyAlgRegistry()599     virtual GenomeAssemblyAlgRegistry *_getGenomeAssemblyAlgRegistry() const {
600         return genomeAssemblyAlgRegistry;
601     }
_getDataBaseRegistry()602     virtual DataBaseRegistry *_getDataBaseRegistry() const {
603         return dataBaseRegistry;
604     }
_getExternalToolRegistry()605     virtual ExternalToolRegistry *_getExternalToolRegistry() const {
606         return externalToolRegistry;
607     }
_getRepeatFinderTaskFactoryRegistry()608     virtual RepeatFinderTaskFactoryRegistry *_getRepeatFinderTaskFactoryRegistry() const {
609         return rfr;
610     }
_getQDActorFactoryRegistry()611     virtual QDActorPrototypeRegistry *_getQDActorFactoryRegistry() const {
612         return qdafr;
613     }
_getStructuralAlignmentAlgorithmRegistry()614     virtual StructuralAlignmentAlgorithmRegistry *_getStructuralAlignmentAlgorithmRegistry() const {
615         return saar;
616     }
_getAutoAnnotationsSupport()617     virtual AutoAnnotationsSupport *_getAutoAnnotationsSupport() const {
618         return aaSupport;
619     }
_getCDSFactoryRegistry()620     virtual CDSearchFactoryRegistry *_getCDSFactoryRegistry() const {
621         return cdsfr;
622     }
_getDbiRegistry()623     virtual U2DbiRegistry *_getDbiRegistry() const {
624         return dbiRegistry;
625     }
_getUdrSchemaRegistry()626     virtual UdrSchemaRegistry *_getUdrSchemaRegistry() const {
627         return udrSchemaRegistry;
628     }
_getSplicedAlignmentTaskRegistry()629     virtual SplicedAlignmentTaskRegistry *_getSplicedAlignmentTaskRegistry() const {
630         return splicedAlignmentTaskRegistry;
631     }
_getOPCommonWidgetFactoryRegistry()632     virtual OPCommonWidgetFactoryRegistry *_getOPCommonWidgetFactoryRegistry() const {
633         return opCommonWidgetFactoryRegistry;
634     }
_getOPWidgetFactoryRegistry()635     virtual OPWidgetFactoryRegistry *_getOPWidgetFactoryRegistry() const {
636         return opWidgetFactoryRegistry;
637     }
_getWorkflowScriptRegistry()638     virtual WorkflowScriptRegistry *_getWorkflowScriptRegistry() const {
639         return workflowScriptRegistry;
640     }
_getAppFileStorage()641     virtual AppFileStorage *_getAppFileStorage() const {
642         return appFileStorage;
643     }
_getAlignmentAlgorithmsRegistry()644     virtual AlignmentAlgorithmsRegistry *_getAlignmentAlgorithmsRegistry() const {
645         return alignmentAlgorithmsRegistry;
646     }
_getDataPathRegistry()647     virtual U2DataPathRegistry *_getDataPathRegistry() const {
648         return dpr;
649     }
_getScriptingToolRegistry()650     virtual ScriptingToolRegistry *_getScriptingToolRegistry() const {
651         return str;
652     }
_getCredentialsAsker()653     virtual CredentialsAsker *_getCredentialsAsker() const {
654         return credentialsAsker;
655     }
_getPasswordStorage()656     virtual PasswordStorage *_getPasswordStorage() const {
657         return passwordStorage;
658     }
_getConvertFactoryRegistry()659     virtual ConvertFactoryRegistry *_getConvertFactoryRegistry() const {
660         return cfr;
661     }
_getWelcomePageActionRegistry()662     virtual IdRegistry<WelcomePageAction> *_getWelcomePageActionRegistry() const {
663         return welcomePageActionRegistry;
664     }
_getProjectFilterTaskRegistry()665     virtual ProjectFilterTaskRegistry *_getProjectFilterTaskRegistry() const {
666         return projectFilterTaskRegistry;
667     }
_getPasteFactory()668     virtual PasteFactory *_getPasteFactory() const {
669         return pf;
670     }
_getDashboardInfoRegistry()671     virtual DashboardInfoRegistry *_getDashboardInfoRegistry() const {
672         return dashboardInfoRegistry;
673     }
674 
675     virtual void _registerGlobalObject(AppGlobalObject *go);
676     virtual void _unregisterGlobalObject(const QString &id);
677     virtual AppGlobalObject *_getGlobalObjectById(const QString &id) const;
_isGUIMode()678     virtual bool _isGUIMode() const {
679         return guiMode;
680     }
_getActiveWindowName()681     virtual QString _getActiveWindowName() const {
682         return activeWindow;
683     }
_getWorkingDirectoryPath()684     virtual QString _getWorkingDirectoryPath() const {
685         return workingDirectoryPath;
686     }
687 
688 private:
689     AlignmentAlgorithmsRegistry *alignmentAlgorithmsRegistry;
690     AnnotationSettingsRegistry *asr;
691     AppFileStorage *appFileStorage;
692     AppSettings *as;
693     AppSettingsGUI *asg;
694     AssemblyConsensusAlgorithmRegistry *assemblyConsensusAlgoRegistry;
695     AutoAnnotationsSupport *aaSupport;
696     CDSearchFactoryRegistry *cdsfr;
697     CMDLineRegistry *cmdLineRegistry;
698     ConvertFactoryRegistry *cfr;
699     CredentialsAsker *credentialsAsker;
700     CudaGpuRegistry *cgr;
701     DBXRefRegistry *dbxr;
702     DNAAlphabetRegistry *dal;
703     DNATranslationRegistry *dtr;
704     DashboardInfoRegistry *dashboardInfoRegistry;
705     DataBaseRegistry *dataBaseRegistry;
706     DnaAssemblyAlgRegistry *dnaAssemblyAlgRegistry;
707     DocumentFormatRegistry *dfr;
708     ExternalToolRegistry *externalToolRegistry;
709     GObjectViewFactoryRegistry *ovfr;
710     GenomeAssemblyAlgRegistry *genomeAssemblyAlgRegistry;
711     IOAdapterRegistry *io;
712     IdRegistry<WelcomePageAction> *welcomePageActionRegistry;
713     MSAConsensusAlgorithmRegistry *msaConsensusAlgoRegistry;
714     MSADistanceAlgorithmRegistry *msaDistanceAlgoRegistry;
715     MainWindow *mw;
716     MolecularSurfaceFactoryRegistry *msfr;
717     MsaColorSchemeRegistry *mcsr;
718     MsaHighlightingSchemeRegistry *mhsr;
719     OPCommonWidgetFactoryRegistry *opCommonWidgetFactoryRegistry;
720     OPWidgetFactoryRegistry *opWidgetFactoryRegistry;
721     OpenCLGpuRegistry *oclgr;
722     PWMConversionAlgorithmRegistry *pwmConversionAlgoRegistry;
723     PasswordStorage *passwordStorage;
724     PasteFactory *pf;
725     PhyTreeGeneratorRegistry *treeGeneratorRegistry;
726     PluginSupport *ps;
727     PluginViewer *plv;
728     Project *prj;
729     ProjectFilterTaskRegistry *projectFilterTaskRegistry;
730     ProjectLoader *pl;
731     ProjectService *prs;
732     ProjectView *pv;
733     ProtocolInfoRegistry *protocolInfoRegistry;
734     QDActorPrototypeRegistry *qdafr;
735     RecentlyDownloadedCache *rdc;
736     RemoteMachineMonitor *remoteMachineMonitor;
737     RepeatFinderTaskFactoryRegistry *rfr;
738     ResourceTracker *rt;
739     SWMulAlignResultNamesTagsRegistry *swmarntr;
740     SWResultFilterRegistry *swrfr;
741     ScriptingToolRegistry *str;
742     SecStructPredictAlgRegistry *secStructPredictRegistry;
743     ServiceRegistry *sr;
744     Settings *gs;
745     Settings *ss;
746     SmithWatermanTaskFactoryRegistry *swar;
747     SplicedAlignmentTaskRegistry *splicedAlignmentTaskRegistry;
748     StructuralAlignmentAlgorithmRegistry *saar;
749     SubstMatrixRegistry *smr;
750     TaskScheduler *ts;
751     TestFramework *tf;
752     U2DataPathRegistry *dpr;
753     U2DbiRegistry *dbiRegistry;
754     UdrSchemaRegistry *udrSchemaRegistry;
755     VirtualFileSystemRegistry *virtualFileSystemRegistry;
756     WorkflowScriptRegistry *workflowScriptRegistry;
757 
758     bool guiMode;
759     QString activeWindow;
760     QString workingDirectoryPath;
761 
762     QList<AppGlobalObject *> appGlobalObjects;
763 };
764 
765 }  // namespace U2
766 
767 #endif
768