1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.openr66.context.task;
21
22 import org.waarp.common.file.AbstractDir;
23 import org.waarp.common.logging.WaarpLogger;
24 import org.waarp.common.logging.WaarpLoggerFactory;
25 import org.waarp.openr66.context.R66Session;
26 import org.waarp.openr66.context.task.exception.OpenR66RunnerException;
27
28 import java.io.File;
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 public class ValidFilePathTask extends AbstractTask {
44
45
46
47 private static final WaarpLogger logger =
48 WaarpLoggerFactory.getLogger(ValidFilePathTask.class);
49
50
51
52
53
54
55
56 public ValidFilePathTask(final String argRule, final int delay,
57 final String argTransfer, final R66Session session) {
58 super(TaskType.VALIDFILEPATH, delay, argRule, argTransfer, session);
59 }
60
61 @Override
62 public final void run() {
63 String finalname = argRule;
64 finalname = AbstractDir.normalizePath(
65 getReplacedValue(finalname, BLANK.split(argTransfer)));
66 logger.info("Test Valid Path with {} from {}", finalname, session);
67 final File from = session.getFile().getTrueFile();
68 final String curpath = AbstractDir.normalizePath(from.getAbsolutePath());
69 final String[] paths = BLANK.split(finalname);
70 for (final String base : paths) {
71 if (curpath.startsWith(base)) {
72 if (delay > 0) {
73 logger.info("Validate File {} from {} and {}", curpath, base,
74 session);
75 }
76 futureCompletion.setSuccess();
77 return;
78 }
79 }
80 if (delay > 0) {
81 logger.error("Unvalidate File: " + curpath + " " + session);
82 }
83 futureCompletion.setFailure(
84 new OpenR66RunnerException("File not Validated"));
85 }
86
87 }