Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.lib / src / main / java / org / gvsig / tools / ToolsLocator.java @ 2142

History | View | Annotate | Download (24.5 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or modify it under
7
 * the terms of the GNU General Public License as published by the Free Software
8
 * Foundation; either version 2 of the License, or (at your option) any later
9
 * version.
10
 *
11
 * This program is distributed in the hope that it will be useful, but WITHOUT
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14
 * details.
15
 *
16
 * You should have received a copy of the GNU General Public License along with
17
 * this program; if not, write to the Free Software Foundation, Inc., 51
18
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us at info AT
21
 * gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.tools;
24

    
25
import org.gvsig.tools.bookmarksandhistory.BookmarksAndHistoryManager;
26
import org.gvsig.tools.bookmarksandhistory.impl.DefaultBookmarksAndHistoryManager;
27
import org.gvsig.tools.complement.ComplementsManager;
28
import org.gvsig.tools.complement.impl.DefaultComplementsManager;
29
import org.gvsig.tools.dataTypes.DataTypesManager;
30
import org.gvsig.tools.dataTypes.impl.DefaultDataTypesManager;
31
import org.gvsig.tools.dispose.DisposableManager;
32
import org.gvsig.tools.dispose.impl.DefaultDisposableManager;
33
import org.gvsig.tools.dynobject.DynObjectManager;
34
import org.gvsig.tools.dynobject.impl.DefaultDynObjectManager;
35
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
36
import org.gvsig.tools.extensionpoint.impl.DefaultExtensionPointManager;
37
import org.gvsig.tools.firewall.FirewallConfiguration;
38
import org.gvsig.tools.i18n.I18nManager;
39
import org.gvsig.tools.identitymanagement.SimpleIdentityManager;
40
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
41
import org.gvsig.tools.locator.AbstractLocator;
42
import org.gvsig.tools.locator.Locator;
43
import org.gvsig.tools.locator.LocatorException;
44
import org.gvsig.tools.operations.OperationManager;
45
import org.gvsig.tools.packageutils.PackageManager;
46
import org.gvsig.tools.persistence.PersistenceManager;
47
import org.gvsig.tools.script.ScriptManager;
48
import org.gvsig.tools.task.TaskStatusManager;
49
import org.gvsig.tools.folders.FoldersManager;
50
import org.gvsig.tools.folders.impl.DefaultFoldersManager;
51
import org.gvsig.tools.i18n.impl.DummyI18nManager;
52
import org.gvsig.tools.identitymanagement.impl.DumbIdentityManager;
53
import org.gvsig.tools.operations.impl.DefaultOperationManager;
54
import org.gvsig.tools.packageutils.impl.DefaultPackageManager;
55
import org.gvsig.tools.persistence.xml.ZipXMLPersistenceManager;
56
import org.gvsig.tools.script.impl.DummyScriptManager;
57
import org.gvsig.tools.task.impl.DefaultTaskStatusManager;
58
import org.gvsig.tools.util.ServiceLoader;
59
import org.gvsig.tools.util.impl.DefaultServiceLoader;
60
import org.xmlpull.v1.XmlPullParser;
61
import org.xmlpull.v1.XmlPullParserFactory;
62
import org.xmlpull.v1.XmlSerializer;
63

    
64
public class ToolsLocator extends AbstractLocator {
65

    
66
    private static final String LOCATOR_NAME = "ToolsLocator";
67

    
68
    public static final String PERSISTENCE_MANAGER_NAME = "org.gvsig.tools.persistence.manager";
69
    private static final String PERSISTENCE_MANAGER_DESCRIPTION = "Persistence Manager of gvSIG";
70

    
71
    public static final String OPERATION_MANAGER_NAME = "org.gvsig.tools.operation.manager";
72
    private static final String OPERATION_MANAGER_DESCRIPTION = "Operation Manager of gvSIG";
73

    
74
    public static final String DYNOBJECT_MANAGER_NAME = "org.gvsig.tools.dynobject.manager";
75
    private static final String DYNOBJECT_MANAGER_DESCRIPTION = "DynObject Manager of gvSIG";
76

    
77
    public static final String DISPOSABLE_MANAGER_NAME = "org.gvsig.tools.dispose.manager";
78
    private static final String DISPOSABLE_MANAGER_DESCRIPTION = "Disposable Manager";
79

    
80
    public static final String DATATYPES_MANAGER_NAME = "org.gvsig.tools.datatypes.manager";
81
    private static final String DATATYPES_MANAGER_DESCRIPTION = "Datatypes Manager";
82

    
83
    public static final String SERVICE_LOADER_NAME = "org.gvsig.tools.service.loader";
84
    private static final String SERVICE_LOADER_DESCRIPTION = "Default Service Loader";
85

    
86
    public static final String I18N_MANAGER_NAME = "org.gvsig.tools.i18n.manager";
87
    private static final String I18N_MANAGER_DESCRIPTION = "Default I18n Manager";
88

    
89
    public static final String TASKSTATUS_MANAGER_NAME = "org.gvsig.tools.taststatus.manager";
90
    private static final String TASKSTATUS_MANAGER_DESCRIPTION = "Default Tast Status Manager";
91

    
92
    public static final String PACKAGE_MANAGER_NAME = "org.gvsig.tools.package.manager";
93
    private static final String PACKAGE_MANAGER_DESCRIPTION = "Default Package Manager";
94

    
95
    public static final String IDENTITY_MANAGER_NAME = "org.gvsig.tools.identity.manager";
96
    private static final String IDENTITY_MANAGER_DESCRIPTION = "Default Identity Manager";
97

    
98
    public static final String FIREWALL_MANAGER_NAME = "org.gvsig.tools.firewall.manager";
99
    private static final String FIREWALL_MANAGER_DESCRIPTION = "Default Firewall Manager";
100
    
101
    public static final String FOLDERS_MANAGER_NAME = "org.gvsig.tools.folders.manager";
102
    private static final String FOLDERS_MANAGER_DESCRIPTION = "Default Folders Manager";
103
    
104
    public static final String SCRIPT_MANAGER_NAME = "org.gvsig.tools.script.manager";
105
    private static final String SCRIPT_MANAGER_DESCRIPTION = "Default dummy script Manager";
106

    
107
    public static final String COMPLEMENTS_MANAGER_NAME = "org.gvsig.tools.complements.manager";
108
    private static final String COMPLEMENTS_MANAGER_DESCRIPTION = "Default complements Manager";
109

    
110
    public static final String BOOKMARKSANDHISTORY_MANAGER_NAME = "org.gvsig.tools.bookmarksAndHistory.manager";
111
    private static final String BOOKMARKSANDHISTORY_MANAGER_DESCRIPTION = "Default BookmarksAndHistory Manager";
112
    
113
    /**
114
     * Unique instance.
115
     */
116
    private static final ToolsLocator INSTANCE = new ToolsLocator();
117

    
118
    // Comma list of xml pull parser factories, parsers or serializers
119
    private String xmlPullParserFactoryClassNames = ""
120
            + "org.xmlpull.mxp1.MXParserFactory," + // MXP1 (XPP3) factory
121
            "org.kxml2.io.KXmlParser," + // KXML2 parser
122
            "org.kxml2.io.KXmlSerializer"; // KXML2 serializer
123

    
124
    @SuppressWarnings("OverridableMethodCallInConstructor")
125
    private ToolsLocator() {
126
        // Register default ServiceLoader
127
        registerDefault(
128
                SERVICE_LOADER_NAME, 
129
                SERVICE_LOADER_DESCRIPTION,
130
                DefaultServiceLoader.class
131
        );
132
    }
133

    
134
    /**
135
     * Return the singleton instance.
136
     *
137
     * @return the singleton instance
138
     */
139
    public static ToolsLocator getInstance() {
140
        return INSTANCE;
141
    }
142

    
143
    @Override
144
    public String getLocatorName() {
145
        return LOCATOR_NAME;
146
    }
147

    
148
    /**
149
     * Return a reference to PersistenceManager.
150
     *
151
     * @return a reference to PersistenceManager
152
     * @throws LocatorException if there is no access to the class or the class
153
     * cannot be instantiated
154
     * @see Locator#get(String)
155
     */
156
    public static PersistenceManager getPersistenceManager()
157
            throws LocatorException {
158
        return (PersistenceManager) getInstance().get(PERSISTENCE_MANAGER_NAME);
159
    }
160

    
161
    /**
162
     * Registers the Class implementing the PersistenceManager interface.
163
     *
164
     * @param clazz implementing the PersistenceManager interface
165
     */
166
    public static void registerPersistenceManager(Class clazz) {
167
        getInstance().register(PERSISTENCE_MANAGER_NAME,
168
                PERSISTENCE_MANAGER_DESCRIPTION, clazz);
169
    }
170

    
171
    public static void registerDefaultPersistenceManager(Class clazz) {
172
        getInstance().registerDefault(PERSISTENCE_MANAGER_NAME,
173
                PERSISTENCE_MANAGER_DESCRIPTION, clazz);
174
    }
175

    
176
    /**
177
     * Return a reference to OperationManager.
178
     *
179
     * @return a reference to OperationManager
180
     * @throws LocatorException if there is no access to the class or the class
181
     * cannot be instantiated
182
     * @see Locator#get(String)
183
     */
184
    public static OperationManager getOperationManager()
185
            throws LocatorException {
186
        return (OperationManager) getInstance().get(OPERATION_MANAGER_NAME);
187
    }
188

    
189
    /**
190
     * Registers the Class implementing the OperationManager interface.
191
     *
192
     * @param clazz implementing the OperationManager interface
193
     */
194
    public static void registerOperationManager(Class clazz) {
195
        getInstance().register(OPERATION_MANAGER_NAME,
196
                OPERATION_MANAGER_DESCRIPTION, clazz);
197
    }
198

    
199
    public static void registerDefaultOperationManager(Class clazz) {
200
        getInstance().registerDefault(OPERATION_MANAGER_NAME,
201
                OPERATION_MANAGER_DESCRIPTION, clazz);
202
    }
203

    
204
    public static ExtensionPointManager getExtensionPointManager() {
205
        return DefaultExtensionPointManager.getManager();
206
    }
207

    
208
    /**
209
     * Return a reference to DynObjectManager.
210
     *
211
     * @return a reference to DynObjectManager
212
     * @throws LocatorException if there is no access to the class or the class
213
     * cannot be instantiated
214
     * @see Locator#get(String)
215
     */
216
    public static DynObjectManager getDynObjectManager()
217
            throws LocatorException {
218
        return (DynObjectManager) getInstance().get(DYNOBJECT_MANAGER_NAME);
219
    }
220

    
221
    /**
222
     * Registers the Class implementing the DynObjectManager interface.
223
     *
224
     * @param clazz implementing the {@link DynObjectManager} interface
225
     */
226
    public static void registerDynObjectManager(Class clazz) {
227
        getInstance().register(DYNOBJECT_MANAGER_NAME,
228
                DYNOBJECT_MANAGER_DESCRIPTION, clazz);
229
    }
230

    
231
    /**
232
     * Return a reference to DisposableManager.
233
     *
234
     * @return a reference to {@link DisposableManager}
235
     * @throws LocatorException if there is no access to the class or the class
236
     * cannot be instantiated
237
     * @see Locator#get(String)
238
     */
239
    public static DisposableManager getDisposableManager()
240
            throws LocatorException {
241
        return (DisposableManager) getInstance().get(DISPOSABLE_MANAGER_NAME);
242
    }
243

    
244
    /**
245
     * Registers the Class implementing the DisposableManager interface.
246
     *
247
     * @param clazz implementing the {@link DisposableManager} interface
248
     */
249
    public static void registerDisposableManager(Class clazz) {
250
        getInstance().register(DISPOSABLE_MANAGER_NAME,
251
                DISPOSABLE_MANAGER_DESCRIPTION, clazz);
252
    }
253

    
254
    /**
255
     * Return a reference to {@link ServiceLoader}.
256
     *
257
     * @return a reference to {@link ServiceLoader}
258
     * @throws LocatorException if there is no access to the class or the class
259
     * cannot be instantiated
260
     * @see Locator#get(String)
261
     */
262
    public static ServiceLoader getServiceLoader() throws LocatorException {
263
        return (ServiceLoader) getInstance().get(SERVICE_LOADER_NAME);
264
    }
265

    
266
    /**
267
     * Registers the Class implementing the {@link ServiceLoader} interface.
268
     *
269
     * @param clazz implementing the {@link ServiceLoader} interface
270
     */
271
    public static void registerServiceLoader(Class clazz) {
272
        getInstance().register(SERVICE_LOADER_NAME, SERVICE_LOADER_DESCRIPTION,
273
                clazz);
274
    }
275

    
276
    /**
277
     * Return a reference to {@link I18nManager}.
278
     *
279
     * @return a reference to {@link I18nManager}
280
     * @throws LocatorException if there is no access to the class or the class
281
     * cannot be instantiated
282
     * @see Locator#get(String)
283
     */
284
    public static I18nManager getI18nManager() throws LocatorException {
285
        return (I18nManager) getInstance().get(I18N_MANAGER_NAME);
286
    }
287

    
288
    /**
289
     * Registers the Class implementing the {@link I18nManager} interface.
290
     *
291
     * @param clazz implementing the {@link I18nManager} interface
292
     */
293
    public static void registerI18nManager(Class clazz) {
294
        getInstance().register(I18N_MANAGER_NAME, I18N_MANAGER_DESCRIPTION,
295
                clazz);
296
    }
297

    
298
    /**
299
     * Registers the default Class implementing the {@link I18nManager}
300
     * interface.
301
     *
302
     * @param clazz implementing the {@link I18nManager} interface
303
     */
304
    public static void registerDefaultI18nManager(Class clazz) {
305
        getInstance().registerDefault(I18N_MANAGER_NAME,
306
                I18N_MANAGER_DESCRIPTION, clazz);
307
    }
308

    
309
    /**
310
     * Return a reference to {@link ScriptManager}.
311
     *
312
     * @return a reference to {@link ScriptManager}
313
     * @throws LocatorException if there is no access to the class or the class
314
     * cannot be instantiated
315
     * @see Locator#get(String)
316
     */
317
    public static ScriptManager getScriptManager() throws LocatorException {
318
        return (ScriptManager) getInstance().get(SCRIPT_MANAGER_NAME);
319
    }
320

    
321
    /**
322
     * Registers the Class implementing the {@link ScriptManager} interface.
323
     *
324
     * @param clazz implementing the {@link ScriptManager} interface
325
     */
326
    public static void registerScriptManager(Class clazz) {
327
        getInstance().register(SCRIPT_MANAGER_NAME, SCRIPT_MANAGER_DESCRIPTION,
328
                clazz);
329
    }
330

    
331
    /**
332
     * Registers the default Class implementing the {@link ScriptManager}
333
     * interface.
334
     *
335
     * @param clazz implementing the {@link ScriptManager} interface
336
     */
337
    public static void registerDefaultScriptManager(Class clazz) {
338
        getInstance().registerDefault(SCRIPT_MANAGER_NAME,
339
                SCRIPT_MANAGER_DESCRIPTION, clazz);
340
    }
341

    
342
    /**
343
     * Registers the Class implementing the DataTypesManager interface.
344
     *
345
     * @param clazz implementing the {@link DataTypesManag} interface
346
     */
347
    public static void registerDataTypesManager(Class clazz) {
348
        getInstance().register(DATATYPES_MANAGER_NAME,
349
                DATATYPES_MANAGER_DESCRIPTION, clazz);
350
    }
351

    
352
    /**
353
     * Registers the default Class implementing the DataTypesManager interface.
354
     *
355
     * @param clazz implementing the {@link DataTypesManager} interface
356
     */
357
    public static void registerDefaultDataTypesManager(Class clazz) {
358
        getInstance().registerDefault(DATATYPES_MANAGER_NAME,
359
                DATATYPES_MANAGER_DESCRIPTION, clazz);
360
    }
361

    
362
    /**
363
     * Return a reference to {@link DataTypesManager}.
364
     *
365
     * @return a reference to {@link DataTypesManager}
366
     * @throws LocatorException if there is no access to the class or the class
367
     * cannot be instantiated
368
     * @see Locator#get(String)
369
     */
370
    public static DataTypesManager getDataTypesManager()
371
            throws LocatorException {
372
        return (DataTypesManager) getInstance().get(DATATYPES_MANAGER_NAME);
373
    }
374

    
375
    /**
376
     * Returns the comma separated list of XmlPullParserFactory, XmlPullParser
377
     * or XmlSerializer implementations to be used.
378
     * <p>
379
     * This parameter must be passed to the {@link XmlPullParserFactory} class
380
     * to get an instance of the factory with an available implementation. That
381
     * class will use the list to try to instance the classes included, and will
382
     * use the first one available in the list order.
383
     * </p>
384
     * <p>
385
     * <strong>Example getting an {@link XmlPullParser}:</strong>
386
     *
387
     * <pre>
388
     * XmlPullParserFactory factory = XmlPullParserFactory.newInstance(ToolsLocator
389
     *                 .getInstance().getXmlPullParserFactoryClassNames(), null);
390
     *
391
     * XmlPullParser xpp = factory.newPullParser();
392
     * </pre>
393
     *
394
     * </p>
395
     * <p>
396
     * <strong>Example getting an {@link XmlSerializer}:</strong>
397
     *
398
     * <pre>
399
     * XmlPullParserFactory factory = XmlPullParserFactory.newInstance(ToolsLocator
400
     *                 .getInstance().getXmlPullParserFactoryClassNames(), null);
401
     *
402
     * XmlSerializer serializer = factory.newSerializer();
403
     * </pre>
404
     *
405
     * </p>
406
     *
407
     * @return the xmlPullParserFactoryClassNames
408
     * @see XmlPullParserFactory#newInstance(String, Class).
409
     */
410
    public String getXmlPullParserFactoryClassNames() {
411
        return xmlPullParserFactoryClassNames;
412
    }
413

    
414
    /**
415
     * Sets a comma separated list of XmlPullParserFactory, XmlPullParser or
416
     * XmlSerializer implementations to be used.
417
     *
418
     * @param xmlPullParserFactoryClassNames the comma separated list of
419
     * XmlPullParserFactory class name
420
     */
421
    public void setXmlPullParserFactoryClassNames(
422
            String xmlPullParserFactoryClassNames) {
423
        this.xmlPullParserFactoryClassNames = xmlPullParserFactoryClassNames;
424
    }
425

    
426
    /**
427
     * Registers the Class implementing the {@link TaskStatusManager} interface.
428
     *
429
     * @param clazz implementing the {@link TaskStatusManager} interface
430
     */
431
    public static void registerTaskStatusManager(Class clazz) {
432
        getInstance().register(TASKSTATUS_MANAGER_NAME,
433
                TASKSTATUS_MANAGER_DESCRIPTION, clazz);
434
    }
435

    
436
    /**
437
     * Registers the default Class implementing the {@link TaskStatusManager}
438
     * interface.
439
     *
440
     * @param clazz implementing the {@link TaskStatusManager} interface
441
     */
442
    public static void registerDefaultTaskStatusManager(Class clazz) {
443
        getInstance().registerDefault(TASKSTATUS_MANAGER_NAME,
444
                TASKSTATUS_MANAGER_DESCRIPTION, clazz);
445
    }
446

    
447
    /**
448
     * Return a reference to {@link TaskStatusManager}.
449
     *
450
     * @return a reference to {@link TaskStatusManager}
451
     * @throws LocatorException if there is no access to the class or the class
452
     * cannot be instantiated
453
     * @see Locator#get(String)
454
     */
455
    public static TaskStatusManager getTaskStatusManager()
456
            throws LocatorException {
457
        return (TaskStatusManager) getInstance().get(TASKSTATUS_MANAGER_NAME);
458
    }
459

    
460
    /**
461
     * Registers the Class implementing the {@link PackageManager} interface.
462
     *
463
     * @param clazz implementing the {@link PackageManager} interface
464
     */
465
    public static void registerPackageManager(Class clazz) {
466
        getInstance().register(PACKAGE_MANAGER_NAME,
467
                PACKAGE_MANAGER_DESCRIPTION, clazz);
468
    }
469

    
470
    /**
471
     * Registers the default Class implementing the {@link PackageManager}
472
     * interface.
473
     *
474
     * @param clazz implementing the {@link PackageManager} interface
475
     */
476
    public static void registerDefaultPackageManager(Class clazz) {
477
        getInstance().registerDefault(PACKAGE_MANAGER_NAME,
478
                PACKAGE_MANAGER_DESCRIPTION, clazz);
479
    }
480

    
481
    /**
482
     * Return a reference to {@link PackageManager}.
483
     *
484
     * @return a reference to {@link PackageManager}
485
     * @throws LocatorException if there is no access to the class or the class
486
     * cannot be instantiated
487
     * @see Locator#get(String)
488
     */
489
    public static PackageManager getPackageManager()
490
            throws LocatorException {
491
        return (PackageManager) getInstance().get(PACKAGE_MANAGER_NAME);
492
    }
493

    
494
    /**
495
     * Registers the Class implementing the {@link SimpleIdentityManager}
496
     * interface.
497
     *
498
     * @param clazz implementing the {@link SimpleIdentityManager} interface
499
     */
500
    public static void registerIdentityManager(Class clazz) {
501
        getInstance().register(IDENTITY_MANAGER_NAME,
502
                IDENTITY_MANAGER_DESCRIPTION, clazz);
503
    }
504

    
505
    /**
506
     * Registers the default Class implementing the
507
     * {@link SimpleIdentityManager} interface.
508
     *
509
     * @param clazz implementing the {@link SimpleIdentityManager} interface
510
     */
511
    public static void registerDefaultIdentityManager(Class clazz) {
512
        getInstance().registerDefault(IDENTITY_MANAGER_NAME,
513
                IDENTITY_MANAGER_DESCRIPTION, clazz);
514
    }
515

    
516
    /**
517
     * Return a reference to {@link SimpleIdentityManager}.
518
     *
519
     * @return a reference to {@link SimpleIdentityManager}
520
     * @throws LocatorException if there is no access to the class or the class
521
     * cannot be instantiated
522
     * @see Locator#get(String)
523
     */
524
    public static SimpleIdentityManager getIdentityManager()
525
            throws LocatorException {
526
        return (SimpleIdentityManager) getInstance().get(IDENTITY_MANAGER_NAME);
527
    }
528

    
529
    /**
530
     * Registers the default Class implementing the FirewallManager interface.
531
     *
532
     * @param clazz implementing the {@link FirewallManager} interface
533
     */
534
    public static void registerDefaultFirewallManager(Class clazz) {
535
        getInstance().registerDefault(FIREWALL_MANAGER_NAME,
536
                FIREWALL_MANAGER_DESCRIPTION, clazz);
537
    }
538

    
539
    /**
540
     * Return a reference to {@link FirewallManager}.
541
     *
542
     * @return a reference to {@link FirewallManager}
543
     * @throws LocatorException if there is no access to the class or the class
544
     * cannot be instantiated
545
     * @see Locator#get(String)
546
     */
547
    public static FirewallConfiguration getFirewallManager()
548
            throws LocatorException {
549
        return (FirewallConfiguration) getInstance().get(FIREWALL_MANAGER_NAME);
550
    }
551

    
552

    
553
    /**
554
     * Registers the default Class implementing the FoldersManager interface.
555
     *
556
     * @param clazz implementing the {@link FirewallManager} interface
557
     */
558
    public static void registerDefaultFoldersManager(Class clazz) {
559
        getInstance().registerDefault(FOLDERS_MANAGER_NAME,
560
                FOLDERS_MANAGER_DESCRIPTION, clazz);
561
    }
562

    
563
    /**
564
     * Return a reference to {@link FoldersManager}.
565
     *
566
     * @return a reference to {@link FoldersManager}
567
     * @throws LocatorException if there is no access to the class or the class
568
     * cannot be instantiated
569
     * @see Locator#get(String)
570
     */
571
    public static FoldersManager getFoldersManager()
572
            throws LocatorException {
573
        return (FoldersManager) getInstance().get(FOLDERS_MANAGER_NAME);
574
    }
575

    
576
    /**
577
     * Registers the default Class implementing the BookmarksAndHistoryManager interface.
578
     *
579
     * @param clazz implementing the {@link BookmarksAndHistoryManager} interface
580
     */
581
    public static void registerDefaultBookmarksAndHistoryManager(Class clazz) {
582
        getInstance().registerDefault(BOOKMARKSANDHISTORY_MANAGER_NAME,
583
                BOOKMARKSANDHISTORY_MANAGER_DESCRIPTION, clazz);
584
    }
585

    
586
    /**
587
     * Registers the Class implementing the {@link BookmarksAndHistoryManager}
588
     * interface.
589
     *
590
     * @param clazz implementing the {@link BookmarksAndHistoryManager} interface
591
     */
592
    public static void registerBookmarksAndHistoryManager(Class clazz) {
593
        getInstance().register(BOOKMARKSANDHISTORY_MANAGER_NAME,
594
                BOOKMARKSANDHISTORY_MANAGER_DESCRIPTION, clazz);
595
    }
596

    
597
    /**
598
     * Return a reference to {@link BookmarksAndHistoryManager}.
599
     *
600
     * @return a reference to {@link BookmarksAndHistoryManager}
601
     * @throws LocatorException if there is no access to the class or the class
602
     * cannot be instantiated
603
     * @see Locator#get(String)
604
     */
605
    public static BookmarksAndHistoryManager getBookmarksAndHistoryManager()
606
            throws LocatorException {
607
        return (BookmarksAndHistoryManager) getInstance().get(BOOKMARKSANDHISTORY_MANAGER_NAME);
608
    }
609

    
610
    public static void registerComplementsManager(Class clazz) {
611
        getInstance().registerDefault(COMPLEMENTS_MANAGER_NAME,
612
                COMPLEMENTS_MANAGER_DESCRIPTION, clazz);
613
    }
614

    
615
    public static ComplementsManager getComplementsManager()
616
            throws LocatorException {
617
        return (ComplementsManager) getInstance().get(COMPLEMENTS_MANAGER_NAME);
618
    }
619

    
620
    public static void registerDefaultToolsLibraries() {
621
        ToolsLocator.registerDefaultOperationManager(DefaultOperationManager.class);
622
        ToolsLocator.registerDefaultTaskStatusManager(DefaultTaskStatusManager.class);
623
        ToolsLocator.registerDynObjectManager(DefaultDynObjectManager.class);
624
        ToolsLocator.registerDisposableManager(DefaultDisposableManager.class);
625
        ToolsLocator.registerDefaultDataTypesManager(DefaultDataTypesManager.class);
626
        ToolsLocator.registerDefaultI18nManager(DummyI18nManager.class);
627
        ToolsLocator.registerDefaultPackageManager(DefaultPackageManager.class);
628
        ToolsLocator.registerDefaultIdentityManager(DumbIdentityManager.class);
629
        ToolsLocator.registerDefaultScriptManager(DummyScriptManager.class);
630
        ToolsLocator.registerDefaultFoldersManager(DefaultFoldersManager.class);
631
        ToolsLocator.registerDefaultPersistenceManager(ZipXMLPersistenceManager.class);
632
        ToolsLocator.registerComplementsManager(DefaultComplementsManager.class);
633
        ToolsLocator.registerDefaultBookmarksAndHistoryManager(DefaultBookmarksAndHistoryManager.class);
634
    }
635
    
636
    public static void initializeLibraries() {
637
        new DefaultLibrariesInitializer().fullInitialize();
638
    }
639

    
640
    public static void initializeLibraries(ClassLoader classLoader, boolean ignoreerrors) {
641
        new DefaultLibrariesInitializer(classLoader).fullInitialize(ignoreerrors);
642
    }
643

    
644
}