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.command.exception.CommandAbstractException;
24 import goldengate.common.logging.GgInternalLogger;
25 import goldengate.common.logging.GgInternalLoggerFactory;
26 import openr66.context.R66Session;
27 import openr66.protocol.exception.OpenR66ProtocolSystemException;
28
29
30
31
32
33
34
35 public class MoveRenameTask extends AbstractTask {
36
37
38
39 private static final GgInternalLogger logger = GgInternalLoggerFactory
40 .getLogger(MoveRenameTask.class);
41
42
43
44
45
46
47
48 public MoveRenameTask(String argRule, int delay, String argTransfer,
49 R66Session session) {
50 super(TaskType.MOVERENAME, delay, argRule, argTransfer, session);
51 }
52
53
54
55
56
57
58 @Override
59 public void run() {
60 boolean success = false;
61 String finalname = argRule;
62 finalname = getReplacedValue(finalname, argTransfer.split(" ")).split(" ")[0];
63 logger.debug("Move and Rename to " + finalname + " with " + argRule +
64 ":" + argTransfer + " and {}", session);
65 try {
66 success = session.getFile().renameTo(finalname, true);
67 } catch (CommandAbstractException e) {
68 logger.error("Move and Rename to " + finalname + " with " +
69 argRule + ":" + argTransfer + " and " + session, e);
70 futureCompletion.setFailure(new OpenR66ProtocolSystemException(e));
71 return;
72 }
73 if (success) {
74 session.getRunner().setFileMoved(finalname, success);
75 futureCompletion.setSuccess();
76 } else {
77 logger.error("Cannot Move and Rename to " + finalname + " with " +
78 argRule + ":" + argTransfer + " and " + session);
79 futureCompletion.setFailure(new OpenR66ProtocolSystemException(
80 "Cannot move file"));
81 }
82 }
83
84 }