1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.log4j.rolling.helper;
19
20 import java.io.File;
21
22
23 /***
24 * File rename action.
25 *
26 * @author Curt Arnold
27 */
28 public final class FileRenameAction extends ActionBase {
29 /***
30 * Source.
31 */
32 private final File source;
33
34 /***
35 * Destination.
36 */
37 private final File destination;
38
39 /***
40 * If true, rename empty files, otherwise delete empty files.
41 */
42 private final boolean renameEmptyFiles;
43
44 /***
45 * Creates an FileRenameAction.
46 *
47 * @param src current file name.
48 * @param dst new file name.
49 * @param renameEmptyFiles if true, rename file even if empty, otherwise delete empty files.
50 */
51 public FileRenameAction(
52 final File src, final File dst, boolean renameEmptyFiles) {
53 source = src;
54 destination = dst;
55 this.renameEmptyFiles = renameEmptyFiles;
56 }
57
58 /***
59 * Rename file.
60 *
61 * @return true if successfully renamed.
62 */
63 public boolean execute() {
64 return execute(source, destination, renameEmptyFiles);
65 }
66
67 /***
68 * Rename file.
69 * @param source current file name.
70 * @param destination new file name.
71 * @param renameEmptyFiles if true, rename file even if empty, otherwise delete empty files.
72 * @return true if successfully renamed.
73 */
74 public static boolean execute(
75 final File source, final File destination, boolean renameEmptyFiles) {
76 if (renameEmptyFiles || (source.length() > 0)) {
77 return source.renameTo(destination);
78 }
79
80 return source.delete();
81 }
82 }