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]

Reply via email to