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}