1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package openr66.context.task;
22
23 import goldengate.common.logging.GgInternalLogger;
24 import goldengate.common.logging.GgInternalLoggerFactory;
25
26 import java.io.File;
27
28 import openr66.context.R66Session;
29 import openr66.protocol.exception.OpenR66ProtocolSystemException;
30 import openr66.protocol.utils.FileUtils;
31
32
33
34
35
36
37
38
39
40
41 public class LinkRenameTask extends AbstractTask {
42
43
44
45 private static final GgInternalLogger logger = GgInternalLoggerFactory
46 .getLogger(LinkRenameTask.class);
47
48
49
50
51
52
53
54 public LinkRenameTask(String argRule, int delay, String argTransfer,
55 R66Session session) {
56 super(TaskType.LINKRENAME, delay, argRule, argTransfer, session);
57 }
58
59
60
61
62
63
64 @Override
65 public void run() {
66 String finalname = argRule;
67 finalname = getReplacedValue(finalname, argTransfer.split(" "));
68 logger.info("Move and Rename to " + finalname + " with " + argRule +
69 ":" + argTransfer + " and {}", session);
70
71
72 File from = session.getFile().getTrueFile();
73 File to = new File(finalname);
74 try {
75 FileUtils.copy(from, to, false, false);
76 } catch (OpenR66ProtocolSystemException e1) {
77 logger.error("Copy and Rename to " + finalname + " with " +
78 argRule + ":" + argTransfer + " and " + session, e1);
79 futureCompletion.setFailure(new OpenR66ProtocolSystemException(e1));
80 return;
81 }
82 session.getRunner().setFileMoved(finalname, true);
83 futureCompletion.setSuccess();
84 }
85
86 }