PepManager.java

 1package eu.siacs.conversations.xmpp.manager;
 2
 3import android.content.Context;
 4import com.google.common.util.concurrent.ListenableFuture;
 5import eu.siacs.conversations.xmpp.Jid;
 6import eu.siacs.conversations.xmpp.XmppConnection;
 7import im.conversations.android.xmpp.NodeConfiguration;
 8import im.conversations.android.xmpp.model.Extension;
 9import im.conversations.android.xmpp.model.stanza.Iq;
10import java.util.Map;
11
12public class PepManager extends AbstractManager {
13
14    public PepManager(Context context, XmppConnection connection) {
15        super(context, connection);
16    }
17
18    public <T extends Extension> ListenableFuture<Map<String, T>> fetchItems(final Class<T> clazz) {
19        return pubSubManager().fetchItems(pepService(), clazz);
20    }
21
22    public <T extends Extension> ListenableFuture<T> fetchMostRecentItem(
23            final String node, final Class<T> clazz) {
24        return pubSubManager().fetchMostRecentItem(pepService(), node, clazz);
25    }
26
27    public ListenableFuture<Void> publish(
28            Extension item, final String itemId, final NodeConfiguration nodeConfiguration) {
29        return pubSubManager().publish(pepService(), item, itemId, nodeConfiguration);
30    }
31
32    public ListenableFuture<Void> publishSingleton(
33            Extension item, final String node, final NodeConfiguration nodeConfiguration) {
34        return pubSubManager().publishSingleton(pepService(), item, node, nodeConfiguration);
35    }
36
37    public ListenableFuture<Void> publishSingleton(
38            final Extension item, final NodeConfiguration nodeConfiguration) {
39        return pubSubManager().publishSingleton(pepService(), item, nodeConfiguration);
40    }
41
42    public ListenableFuture<Iq> retract(final String itemId, final String node) {
43        return pubSubManager().retract(pepService(), itemId, node);
44    }
45
46    private PubSubManager pubSubManager() {
47        return getManager(PubSubManager.class);
48    }
49
50    private Jid pepService() {
51        return connection.getAccount().getJid().asBareJid();
52    }
53}