/** * 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.integration.performance.test.lower_tester; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.societies.api.comm.xmpp.exceptions.CommunicationException; import org.societies.api.comm.xmpp.exceptions.XMPPError; import org.societies.api.comm.xmpp.interfaces.ICommManager; import org.societies.api.comm.xmpp.pubsub.PubsubClient; import org.societies.api.comm.xmpp.pubsub.Subscriber; import org.societies.api.identity.IIdentity; import org.societies.api.internal.useragent.feedback.IUserFeedback; import org.societies.api.internal.useragent.model.ExpProposalType; import org.societies.api.schema.useragent.feedback.UserFeedbackBean; /** * @author Rafik * */ @Deprecated public class UserFeedbackMock implements Subscriber{ private IUserFeedback userFeedback; private ICommManager commsMgr; private PubsubClient pubsub; private IIdentity myCloudID; private static Logger LOG = LoggerFactory.getLogger(UserFeedbackMock.class); public UserFeedbackMock() { } public void setCommsMgr(ICommManager commsMgr){ LOG.info("### [UserFeedbackMock] commsMgr injected"); this.commsMgr = commsMgr; } public void setPubsub(PubsubClient pubsub){ LOG.info("### [UserFeedbackMock] pubsub injected"); this.pubsub = pubsub; } public void setUserFeedback(IUserFeedback userFeedback) { LOG.info("### [UserFeedbackMock] userFeedback injected"); this.userFeedback = userFeedback; } public void init() { LOG.info("### [UserFeedbackMock] init method"); //get cloud ID myCloudID = commsMgr.getIdManager().getThisNetworkNode(); LOG.debug("### [UserFeedbackMock] Got my cloud ID: "+myCloudID); //register for events from created pubsub node try { LOG.debug("### [UserFeedbackMock] Registering for user feedback pubsub node"); pubsub.subscriberSubscribe(myCloudID, "org/societies/useragent/feedback/event/REQUEST", this); //pubsub.subscriberSubscribe(myCloudID, "org/societies/useragent/feedback/event/EXPLICIT_RESPONSE", this); //pubsub.subscriberSubscribe(myCloudID, "org/societies/useragent/feedback/event/IMPLICIT_RESPONSE", this); LOG.debug("### [UserFeedbackMock] Pubsub registration complete!"); } catch (XMPPError e) { e.printStackTrace(); } catch (CommunicationException e) { e.printStackTrace(); } } @Override public void pubsubEvent(IIdentity identity, String eventTopic, String itemID, Object item) { LOG.debug("+++ [UserFeedbackMock] Received pubsub event with topic: "+eventTopic); if(eventTopic.equalsIgnoreCase("org/societies/useragent/feedback/event/REQUEST")) { //read from request bean UserFeedbackBean ufBean = (UserFeedbackBean)item; switch(ufBean.getMethod()){ case GET_EXPLICIT_FB: LOG.info("+++ [UserFeedbackMock] EXPLICIT_FB"); List<String> result; if(ufBean.getType() == ExpProposalType.RADIOLIST) { for (String string : ufBean.getOptions()) { LOG.info("+++ [UserFeedbackMock] option: " + string); } // result = new ArrayList<String>(); // result.add("Proceed"); // userFeedback.submitExplicitResponse(ufBean.getRequestId(), result); } else if(ufBean.getType() == ExpProposalType.CHECKBOXLIST) { for (String string : ufBean.getOptions()) { LOG.info("+++ [UserFeedbackMock] option: " + string); } // result = new ArrayList<String>(); // result.add(""); // userFeedback.submitExplicitResponse(ufBean.getRequestId(), result); } else if(ufBean.getType() == ExpProposalType.ACKNACK) { for (String string : ufBean.getOptions()) { LOG.info("+++ [UserFeedbackMock] option: " + string); } result = new ArrayList<String>(); result.add("Proceed"); userFeedback.submitExplicitResponse(ufBean.getRequestId(), result); } else { LOG.error("+++ [UserFeedbackMock] Could not understand this type of explicit request: "+ ufBean.getType()); } break; case GET_IMPLICIT_FB: LOG.info("+++ [UserFeedbackMock] IMPLICIT_FB"); for (String string : ufBean.getOptions()) { LOG.info("+++ [UserFeedbackMock] option: " + string); } userFeedback.submitImplicitResponse(ufBean.getRequestId(), true); break; case SHOW_NOTIFICATION: LOG.info("+++ [UserFeedbackMock] SHOW_NOTIFICATION"); userFeedback.submitImplicitResponse(ufBean.getRequestId(), true); } } // else if(eventTopic.equalsIgnoreCase("org/societies/useragent/feedback/event/EXPLICIT_RESPONSE")) // { // // } // else if(eventTopic.equalsIgnoreCase("org/societies/useragent/feedback/event/IMPLICIT_RESPONSE")) // { // // } } }