/** * Copyright (c) 2011, SOCIETIES Consortium (WATERFORD INSTITUTE OF TECHNOLOGY (TSSG), HERIOT-WATT UNIVERSITY (HWU), SOLUTA.NET * (SN), GERMAN AEROSPACE CENTRE (Deutsches Zentrum fuer Luft- und Raumfahrt e.V.) (DLR), Zavod za varnostne tehnologije * informacijske družbe in elektronsko poslovanje (SETCCE), INSTITUTE OF COMMUNICATION AND COMPUTER SYSTEMS (ICCS), LAKE * COMMUNICATIONS (LAKE), INTEL PERFORMANCE LEARNING SOLUTIONS LTD (INTEL), PORTUGAL TELECOM INOVAÇÃO, SA (PTIN), IBM Corp., * INSTITUT TELECOM (ITSUD), AMITEC DIACHYTI EFYIA PLIROFORIKI KAI EPIKINONIES ETERIA PERIORISMENIS EFTHINIS (AMITEC), TELECOM * ITALIA S.p.a.(TI), TRIALOG (TRIALOG), Stiftelsen SINTEF (SINTEF), NEC EUROPE LTD (NEC)) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following * conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.societies.platform.socialdata.utils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.societies.api.internal.schema.sns.socialdata.ConnectorBean; import org.societies.api.internal.schema.sns.socialdata.ConnectorsList; import org.societies.api.internal.schema.sns.socialdata.SocialDataMethod; import org.societies.api.internal.schema.sns.socialdata.SocialdataMessageBean; import org.societies.api.schema.sns.socialdata.model.SocialNetwork; import org.societies.api.internal.sns.ISocialConnector; //import org.societies.api.sns.SocialNetworkName; import org.societies.platform.socialdata.SocialConnectorDTO; /** * Utility class with common code for sending/receiving SocialData Comms beans. * * @author Edgar Domingues (PTIN) * */ public class SocialDataCommsUtils { public static final String PARAMS_SEPARATOR = ";"; public static final String PARAM_NAME_VALUE_SEPARATOR = "="; public static final String PARAM_NAME_VALIDITY = "validity"; /* public static Socialnetwork socialNetwork(SocialNetworkName socialNetwork) { return Socialnetwork.fromValue(socialNetwork.name().toLowerCase()); } public static SocialNetworkName socialNetwork(Socialnetwork socialNetwork) { switch(socialNetwork) { case FACEBOOK: return SocialNetworkName.FACEBOOK; case FOURSQUARE: return SocialNetworkName.FOURSQUARE; case TWITTER: return SocialNetworkName.TWITTER; case LINKEDIN: return SocialNetworkName.LINKEDIN; case GOOGLEPLUS: return SocialNetworkName.GOOGLEPLUS; } throw new IllegalArgumentException("Social Network '"+socialNetwork+"' not defined in the internal API."); } */ public static Map<String, String> parseParams(String params) { Map<String, String> paramsMap = new HashMap<String, String>(); String[] paramsSplit = params.split(PARAMS_SEPARATOR); for(int i=0; i<paramsSplit.length; i++) if(paramsSplit[i].length() > 0) { String[] nameValue = paramsSplit[i].split(PARAM_NAME_VALUE_SEPARATOR, 2); paramsMap.put(nameValue[0], nameValue[1]); } return paramsMap; } public static SocialdataMessageBean createAddConnectorMessageBean(SocialNetwork socialNetwork, String token, long validity) { SocialdataMessageBean messageBean = new SocialdataMessageBean(); messageBean.setMethod(SocialDataMethod.ADD_CONNECTOR); messageBean.setSnName(socialNetwork); messageBean.setToken(token); messageBean.setValidity(validity); return messageBean; } public static SocialdataMessageBean createRemoveConnectorMessageBean(String connectorId) { SocialdataMessageBean messageBean = new SocialdataMessageBean(); messageBean.setMethod(SocialDataMethod.REMOVE_CONNECTOR); messageBean.setId(connectorId); return messageBean; } public static SocialdataMessageBean createGetConnectorsMessageBean() { SocialdataMessageBean messageBean = new SocialdataMessageBean(); messageBean.setMethod(SocialDataMethod.GET_CONNECTOR_LIST); return messageBean; } 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> convertConnectorBeanListToSocialConnectorList(ConnectorsList connectorsList) { List<ConnectorBean> connectorBeanList = connectorsList.getConnectorBean(); List<ISocialConnector> socialConnectorsList = new ArrayList<ISocialConnector>(connectorBeanList.size()); for(ConnectorBean connectorBean:connectorBeanList) socialConnectorsList.add(convertBeanToSocialConnector(connectorBean)); return socialConnectorsList; } public static ISocialConnector convertBeanToSocialConnector(ConnectorBean connectorBean) { return SocialConnectorDTO.createFromBean(connectorBean); } }