package org.kisst.gft.filetransfer.action; import org.kisst.gft.action.BaseAction; import org.kisst.gft.filetransfer.Channel; import org.kisst.gft.filetransfer.FileLocation; import org.kisst.gft.filetransfer.FileTransferTask; import org.kisst.gft.ssh.SshFileServer; import org.kisst.gft.task.Task; import org.kisst.props4j.Props; public class CopyFile extends BaseAction { public CopyFile(Props props) { super(props); } @Override public boolean safeToRetry() { return true; } @Override public void execute(Task task) { FileTransferTask ft= (FileTransferTask) task; Channel chan=ft.channel; FileLocation src=ft.getSourceFile(); FileLocation dest=ft.getDestinationFile(); SshFileServer srcsrv= (SshFileServer) src.getFileServer(); SshFileServer destsrv= (SshFileServer) dest.getFileServer(); String mode=chan.mode; if ("push".equals(mode)) srcsrv.copyFileTo(src.getPath(), destsrv, dest.getPath()); else if ("pull".equals(mode)) destsrv.copyFileFrom(srcsrv, src.getPath(), dest.getPath()); } }