imario 2004/05/08 13:05:47
Modified: vfs/src/java/org/apache/commons/vfs/tasks MoveTask.java
Log:
added "tryRename" to allow to rename a file instead of copy/delete it. if rename is
not possible the file is copied/deleted anyway.
Revision Changes Path
1.8 +29 -7
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/tasks/MoveTask.java
Index: MoveTask.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/tasks/MoveTask.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- MoveTask.java 28 Feb 2004 03:35:52 -0000 1.7
+++ MoveTask.java 8 May 2004 20:05:47 -0000 1.8
@@ -24,21 +24,43 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Adam Murdoch</a>
* @version $Revision$ $Date$
- *
* @todo Delete matching folders
*/
public class MoveTask
extends CopyTask
{
+ private boolean tryRename = false;
+
+ /**
+ * Enable/disable move/rename of file (if possible)
+ */
+ public void setTryRename(boolean tryRename)
+ {
+ this.tryRename = tryRename;
+ }
+
/**
* Handles a single source file.
*/
- protected void handleOutOfDateFile( final FileObject srcFile,
- final FileObject destFile )
+ protected void handleOutOfDateFile(final FileObject srcFile,
+ final FileObject destFile)
throws FileSystemException
{
- super.handleOutOfDateFile( srcFile, destFile );
- log( "Deleting " + srcFile );
- srcFile.delete( Selectors.SELECT_SELF );
+ if (!tryRename || !srcFile.canRenameTo(destFile))
+ {
+ super.handleOutOfDateFile(srcFile, destFile);
+
+ log("Deleting " + srcFile);
+ srcFile.delete(Selectors.SELECT_SELF);
+ }
+ else
+ {
+ log("Rename " + srcFile + " to " + destFile);
+ srcFile.moveTo(destFile);
+ if (!isPreserveLastModified())
+ {
+
destFile.getContent().setLastModifiedTime(System.currentTimeMillis());
+ }
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]