package org.societies.activity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.societies.api.activity.IActivityFeedCallback; import org.societies.api.comm.xmpp.datatypes.Stanza; import org.societies.api.comm.xmpp.datatypes.XMPPInfo; import org.societies.api.comm.xmpp.exceptions.XMPPError; import org.societies.api.comm.xmpp.interfaces.ICommCallback; import org.societies.api.schema.activityfeed.MarshaledActivityFeed; import java.util.Arrays; import java.util.Collections; import java.util.List; public class ActivityFeedCallback implements ICommCallback { private final static List<String> NAMESPACES = Collections .unmodifiableList( Arrays.asList("http://societies.org/api/schema/activityfeed")); private final static List<String> PACKAGES = Collections .unmodifiableList( Arrays.asList("org.societies.api.schema.activityfeed")); private IActivityFeedCallback sourceCallback = null; private static Logger LOG = LoggerFactory.getLogger(ActivityFeedCallback.class); public ActivityFeedCallback (String clientId, IActivityFeedCallback sourceCallback) { this.sourceCallback = sourceCallback; } @Override public List<String> getXMLNamespaces() { return NAMESPACES; } @Override public List<String> getJavaPackages() { return PACKAGES; } @Override public void receiveResult(Stanza stanza, Object payload) { LOG.info("receive result received"); // community namespace if (payload instanceof MarshaledActivityFeed) { LOG.info("Callback with result"); MarshaledActivityFeed a = (MarshaledActivityFeed) payload ; if(a.getDeleteActivityResponse() != null) { LOG.info("Delete Activity Response received and equal to " + a.getDeleteActivityResponse().isResult()); } if(a.getAddActivityResponse() != null) { LOG.info("Add Activity Response received and equal to " + a.getAddActivityResponse().isResult()); } if(a.getCleanUpActivityFeedResponse() != null) { LOG.info("CleanUp Activity Feed Response received and equal to " + a.getCleanUpActivityFeedResponse().getResult()); } if(a.getGetActivitiesResponse() !=null) { LOG.info("Get Activities Response received"); } } // return callback for all cases this.sourceCallback.receiveResult((MarshaledActivityFeed)payload); } @Override public void receiveError(Stanza stanza, XMPPError error) { } @Override public void receiveInfo(Stanza stanza, String node, XMPPInfo info) { } @Override public void receiveItems(Stanza stanza, String node, List<String> items) { } @Override public void receiveMessage(Stanza stanza, Object payload) { } }