KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > vfs > tasks > MoveTask


1 /*
2  * Copyright 2002-2005 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.commons.vfs.tasks;
17
18 import org.apache.commons.vfs.FileObject;
19 import org.apache.commons.vfs.FileSystemException;
20 import org.apache.commons.vfs.Selectors;
21
22 /**
23  * An Ant task that moves matching files.
24  *
25  * @author <a HREF="mailto:adammurdoch@apache.org">Adam Murdoch</a>
26  * @todo Delete matching folders
27  */

28 public class MoveTask
29     extends CopyTask
30 {
31     private boolean tryRename = false;
32
33     /**
34      * Enable/disable move/rename of file (if possible)
35      */

36     public void setTryRename(boolean tryRename)
37     {
38         this.tryRename = tryRename;
39     }
40
41     /**
42      * Handles a single source file.
43      */

44     protected void handleOutOfDateFile(final FileObject srcFile,
45                                        final FileObject destFile)
46         throws FileSystemException
47     {
48         if (!tryRename || !srcFile.canRenameTo(destFile))
49         {
50             super.handleOutOfDateFile(srcFile, destFile);
51
52             log("Deleting " + srcFile);
53             srcFile.delete(Selectors.SELECT_SELF);
54         }
55         else
56         {
57             log("Rename " + srcFile + " to " + destFile);
58             srcFile.moveTo(destFile);
59             if (!isPreserveLastModified())
60             {
61                 destFile.getContent().setLastModifiedTime(System.currentTimeMillis());
62             }
63         }
64     }
65 }
66
Popular Tags