1package eu.siacs.conversations.xmpp;
 2
 3import com.google.common.collect.ClassToInstanceMap;
 4import com.google.common.collect.ImmutableClassToInstanceMap;
 5import eu.siacs.conversations.services.XmppConnectionService;
 6import eu.siacs.conversations.xmpp.manager.AbstractManager;
 7import eu.siacs.conversations.xmpp.manager.AvatarManager;
 8import eu.siacs.conversations.xmpp.manager.AxolotlManager;
 9import eu.siacs.conversations.xmpp.manager.BlockingManager;
10import eu.siacs.conversations.xmpp.manager.BookmarkManager;
11import eu.siacs.conversations.xmpp.manager.CarbonsManager;
12import eu.siacs.conversations.xmpp.manager.DiscoManager;
13import eu.siacs.conversations.xmpp.manager.EntityTimeManager;
14import eu.siacs.conversations.xmpp.manager.HttpUploadManager;
15import eu.siacs.conversations.xmpp.manager.LegacyBookmarkManager;
16import eu.siacs.conversations.xmpp.manager.MessageDisplayedSynchronizationManager;
17import eu.siacs.conversations.xmpp.manager.MultiUserChatManager;
18import eu.siacs.conversations.xmpp.manager.NativeBookmarkManager;
19import eu.siacs.conversations.xmpp.manager.NickManager;
20import eu.siacs.conversations.xmpp.manager.OfflineMessagesManager;
21import eu.siacs.conversations.xmpp.manager.PepManager;
22import eu.siacs.conversations.xmpp.manager.PingManager;
23import eu.siacs.conversations.xmpp.manager.PresenceManager;
24import eu.siacs.conversations.xmpp.manager.PrivateStorageManager;
25import eu.siacs.conversations.xmpp.manager.PubSubManager;
26import eu.siacs.conversations.xmpp.manager.RegistrationManager;
27import eu.siacs.conversations.xmpp.manager.RosterManager;
28import eu.siacs.conversations.xmpp.manager.StreamHostManager;
29import eu.siacs.conversations.xmpp.manager.UnifiedPushManager;
30import eu.siacs.conversations.xmpp.manager.VCardManager;
31
32public class Managers {
33
34    private Managers() {
35        throw new AssertionError("Do not instantiate me");
36    }
37
38    public static ClassToInstanceMap<AbstractManager> get(
39            final XmppConnectionService context, final XmppConnection connection) {
40        return new ImmutableClassToInstanceMap.Builder<AbstractManager>()
41                .put(AvatarManager.class, new AvatarManager(context, connection))
42                .put(AxolotlManager.class, new AxolotlManager(context, connection))
43                .put(BlockingManager.class, new BlockingManager(context, connection))
44                .put(BookmarkManager.class, new BookmarkManager(context, connection))
45                .put(CarbonsManager.class, new CarbonsManager(context, connection))
46                .put(DiscoManager.class, new DiscoManager(context, connection))
47                .put(EntityTimeManager.class, new EntityTimeManager(context, connection))
48                .put(HttpUploadManager.class, new HttpUploadManager(context, connection))
49                .put(LegacyBookmarkManager.class, new LegacyBookmarkManager(context, connection))
50                .put(
51                        MessageDisplayedSynchronizationManager.class,
52                        new MessageDisplayedSynchronizationManager(context, connection))
53                .put(MultiUserChatManager.class, new MultiUserChatManager(context, connection))
54                .put(NativeBookmarkManager.class, new NativeBookmarkManager(context, connection))
55                .put(NickManager.class, new NickManager(context, connection))
56                .put(OfflineMessagesManager.class, new OfflineMessagesManager(context, connection))
57                .put(PepManager.class, new PepManager(context, connection))
58                .put(PingManager.class, new PingManager(context, connection))
59                .put(PresenceManager.class, new PresenceManager(context, connection))
60                .put(PrivateStorageManager.class, new PrivateStorageManager(context, connection))
61                .put(PubSubManager.class, new PubSubManager(context, connection))
62                .put(RegistrationManager.class, new RegistrationManager(context, connection))
63                .put(RosterManager.class, new RosterManager(context, connection))
64                .put(StreamHostManager.class, new StreamHostManager(context, connection))
65                .put(UnifiedPushManager.class, new UnifiedPushManager(context, connection))
66                .put(VCardManager.class, new VCardManager(context, connection))
67                .build();
68    }
69}