package org.ourgrid.peer.communication.sender;
import java.util.List;
import org.ourgrid.common.interfaces.management.WorkerManagement;
import org.ourgrid.common.internal.SenderIF;
import org.ourgrid.peer.business.dao.PeerDAOFactory;
import org.ourgrid.peer.response.WorkForPeerResponseTO;
import br.edu.ufcg.lsd.commune.container.servicemanager.ServiceManager;
import br.edu.ufcg.lsd.commune.identification.ServiceID;
public class WorkForPeerSender implements SenderIF<WorkForPeerResponseTO> {
public void execute(WorkForPeerResponseTO response, ServiceManager manager) {
WorkerManagement workerManagement = (WorkerManagement) manager.getStub(
ServiceID.parse(response.getWorkerManagementAddress()), WorkerManagement.class);
List<String> usersDN = response.getUsersDN();
if (usersDN == null) {
workerManagement.workForPeer(response.getPeerPublicKey());
} else {
workerManagement.workForPeer(response.getPeerPublicKey(), usersDN,
PeerDAOFactory.getInstance().getPeerCertificationDAO().getRequestingPeersCAsCertificates());
}
}
}