package org.ourgrid.worker.communication.sender;
import org.ourgrid.common.interfaces.Worker;
import org.ourgrid.common.interfaces.to.IncomingHandle;
import org.ourgrid.common.internal.SenderIF;
import org.ourgrid.worker.WorkerConstants;
import org.ourgrid.worker.response.AcceptTransferResponseTO;
import br.edu.ufcg.lsd.commune.container.servicemanager.ServiceManager;
import br.edu.ufcg.lsd.commune.identification.ContainerID;
import br.edu.ufcg.lsd.commune.processor.filetransfer.IncomingTransferHandle;
public class AcceptTransferSender implements SenderIF<AcceptTransferResponseTO>{
public void execute(AcceptTransferResponseTO response, ServiceManager manager) {
IncomingHandle incomingHandle = response.getIncomingHandle();
ContainerID senderContainerID = ContainerID.parse(incomingHandle.getSenderContainerID());
senderContainerID.setPublicKey(incomingHandle.getSenderPublicKey());
IncomingTransferHandle incomingTransferHandle = new IncomingTransferHandle(incomingHandle.getId(),
incomingHandle.getLogicalFileName(), incomingHandle.getDescription(), incomingHandle.getFileSize(),
senderContainerID);
incomingTransferHandle.setExecutable(incomingHandle.isExecutable());
incomingTransferHandle.setReadable(incomingHandle.isReadable());
incomingTransferHandle.setWritable(incomingHandle.isWritable());
Worker worker = (Worker) manager.getObjectDeployment(WorkerConstants.WORKER).getObject();
manager.acceptTransfer(incomingTransferHandle, worker, response.getFile());
}
}