package org.societies.platform.socialdata;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.societies.api.internal.schema.sns.socialdata.ConnectorBean;
import org.societies.api.internal.sns.ISocialConnector;
import org.societies.api.internal.sns.ISocialData;
import org.societies.api.schema.sns.socialdata.model.SocialNetwork;
import com.restfb.json.JsonObject;
public class SocialNetworkUtils {
/**
* Translate a String into a SocialNetwotkName
*
* @param name
* String
* @return {@link SocialNetwork}
*/
public static SocialNetwork getSocialNetowkName(String name) {
if (SocialNetwork.FACEBOOK.value().equalsIgnoreCase(name))
return SocialNetwork.FACEBOOK;
if (SocialNetwork.TWITTER.value().equalsIgnoreCase(name))
return SocialNetwork.TWITTER;
if (SocialNetwork.FOURSQUARE.value().equalsIgnoreCase(name))
return SocialNetwork.FOURSQUARE;
if (SocialNetwork.LINKEDIN.value().equalsIgnoreCase(name))
return SocialNetwork.LINKEDIN;
if (SocialNetwork.GOOGLEPLUS.value().equalsIgnoreCase(name))
return SocialNetwork.GOOGLEPLUS;
return null;
}
public static String genJsonPostMessage(Map<String, ?> map) {
String type = map.get(ISocialData.POST_TYPE).toString();
JsonObject result = new JsonObject(type);
if (type.equals(ISocialData.CHECKIN)) {
// Example:
// String value="{ \"checkin\": {"+
// "\"lat\": \"45.473272\","+
// "\"lon\": \"9.187519\","+
// "\"message\": \"Milano City\","+
// "\"place\": 1234}"+
// "}";
if (map.containsKey(ISocialData.POST_DESCR))
result.put(ISocialData.POST_DESCR,
map.get(ISocialData.POST_DESCR).toString());
result.put(ISocialData.POST_LAT, map.get(ISocialData.POST_LAT)
.toString());
result.put(ISocialData.POST_LON, map.get(ISocialData.POST_LON)
.toString());
if (map.containsKey(ISocialData.POST_MESSAGE))
result.put(ISocialData.POST_MESSAGE,
map.get(ISocialData.POST_MESSAGE).toString());
if (map.containsKey(ISocialData.POST_PLACE))
result.put(ISocialData.POST_PLACE,
map.get(ISocialData.POST_PLACE).toString());
} else {
// Example:
// String value="{ \"event\": {"+
// "\"name\": \"Party\","+
// "\"from\": \"2013-08-12 10:45\","+
// "\"to\": \"2013-08-12 18:45\","+
// "\"location\": \"HOME\","+
// "\"description\": \"My Birthday Party\"}"+
// "}";
if (map.containsKey(ISocialData.POST_NAME))
result.put(ISocialData.POST_NAME, map
.get(ISocialData.POST_NAME).toString());
result.put(ISocialData.POST_FROM, map.get(ISocialData.POST_FROM)
.toString());
result.put(ISocialData.POST_TO, map.get(ISocialData.POST_TO)
.toString());
if (map.containsKey(ISocialData.POST_DESCR))
result.put(ISocialData.POST_DESCR,
map.get(ISocialData.POST_DESCR).toString());
if (map.containsKey(ISocialData.POST_LOCATION))
result.put(ISocialData.POST_LOCATION,
map.get(ISocialData.POST_LOCATION).toString());
if (map.containsKey(ISocialData.POST_PLACE))
result.put(ISocialData.POST_PLACE,
map.get(ISocialData.POST_PLACE).toString());
}
return result.toString(1);
}
public static ISocialConnector convertBeanToSocialConnector(ConnectorBean connectorBean) {
return SocialConnectorDTO.createFromBean(connectorBean);
}
public static ConnectorBean convertSocialConnectorToBean(ISocialConnector socialConnector) {
ConnectorBean connectorBean = new ConnectorBean();
connectorBean.setId(socialConnector.getID());
connectorBean.setName(socialConnector.getConnectorName());
connectorBean.setExpires(socialConnector.getTokenExpiration());
return connectorBean;
}
public static List<ISocialConnector> getConnectorsByName(SocialNetwork name, Collection<ISocialConnector> connectors){
Iterator <ISocialConnector> it = connectors.iterator();
ArrayList<ISocialConnector> results = new ArrayList<ISocialConnector>();
for (ISocialConnector conn : connectors){
if (conn.getSocialNetwork().equals(name)){
results.add(conn);
}
}
return results;
}
}