/*
* version 1.0 - MUSES prototype software
* Copyright MUSES project (European Commission FP7) - 2013
*
*/
package eu.musesproject.server.policyrulestransmitter;
/*
* #%L
* MUSES Server
* %%
* Copyright (C) 2013 - 2014 S2 Grupo
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doAnswer;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.mockito.Mock;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import eu.musesproject.client.model.decisiontable.PolicyDT;
import eu.musesproject.server.connectionmanager.ConnectionManager;
import eu.musesproject.server.connectionmanager.DataHandler;
import eu.musesproject.server.connectionmanager.IConnectionManager;
import eu.musesproject.server.risktrust.Device;
/**
* Class PolicyTransmitter
*
* @author Sergio Zamarripa (S2)
* @version Oct 7, 2013
*/
public class PolicyTransmitter {
private Logger logger = Logger.getLogger(this.getClass().getName());
private List<DataHandler> dataHandlerList = new CopyOnWriteArrayList<DataHandler>();
private ConnectionManager connManager;
public PolicyTransmitter() {
connManager = ConnectionManager.getInstance();
}
/**
* Info D
*
* Once the policy decision table has been computed, this method sends this
* policy to the device
*
* @param policy
*
* @param device
*
* @return result of sending the policy
*/
public Integer sendPolicyDT(PolicyDT policy, Device device, String sessionId) {
if (sessionId != null){
sendData(policy.getRawPolicy(), sessionId);
return 1;
}else{
logger.info("SessionId is null");
return -1;
}
}
private void sendData(String dataToSend, String sessionId){
//logger.log(Level.INFO, "[PolicyTransmitter.sendData]");
//logger.log(Level.INFO, " PolicyTransmitter sendData. Data to be sent:"+dataToSend);
logger.log(Level.INFO, " Sending data with sessionId:"+sessionId);
// connManager.sendData(sessionId, dataToSend);
if (dataToSend != null){ // temporarily commented
connManager.sendData(sessionId, dataToSend);
}
}
}