maspack.fileutil
Class MultiFileTransferMonitor

java.lang.Object
  extended by maspack.fileutil.MultiFileTransferMonitor
All Implemented Interfaces:
java.lang.Runnable, FileTransferMonitor

public class MultiFileTransferMonitor
extends java.lang.Object
implements java.lang.Runnable, FileTransferMonitor

Adapted from org.apache.commons.vfs2.impl.FileTransferMonitor


Constructor Summary
MultiFileTransferMonitor()
           
 
Method Summary
 boolean addFile(org.apache.commons.vfs2.FileObject dest, org.apache.commons.vfs2.FileObject source)
          Adds a file to be monitored.
 boolean addFile(org.apache.commons.vfs2.FileObject dest, org.apache.commons.vfs2.FileObject source, long size, java.lang.String displayName)
          Adds a file to be monitored.
 boolean addFile(org.apache.commons.vfs2.FileObject dest, long size)
          Adds a file to be monitored.
 void addListener(FileTransferListener listener)
          Adds a listener object to respond to transfer events
 void fireCompleteEvent(org.apache.commons.vfs2.FileObject dest)
          Convenience function for firing a "complete" event for the transfer
 void fireEvent(FileTransferEvent event)
          Fires an event to all listeners
 void fireStartEvent(org.apache.commons.vfs2.FileObject dest)
          Convenience function for firing a "start" event for the transfer
 int getChecksPerRun()
          get the number of files to check per run.
 FileTransferListener[] getListeners()
          Access method to get the current FileListener object notified when there are changes with the files added.
 long getPollSleep()
          Get the delay between runs.
 void monitor(org.apache.commons.vfs2.FileObject destFile, org.apache.commons.vfs2.FileObject srcFile)
          Informs this monitor object to monitor a file transfer.
 void monitor(org.apache.commons.vfs2.FileObject destFile, org.apache.commons.vfs2.FileObject srcFile, long size)
           
 void monitor(org.apache.commons.vfs2.FileObject destFile, org.apache.commons.vfs2.FileObject srcFile, long size, java.lang.String displayName)
          Informs this monitor object to monitor a file transfer.
 void monitor(org.apache.commons.vfs2.FileObject destFile, long size)
          Informs this monitor object to monitor a file transfer.
 void release(org.apache.commons.vfs2.FileObject file)
          Removes a file from being monitored.
 void removeListener(FileTransferListener listener)
          Removes a listener object
 void run()
          Asks the agent for each file being monitored to check its file for changes.
 void setChecksPerRun(int checksPerRun)
          set the number of files to check per run.
 void setPollSleep(long delay)
          Set the delay between runs.
 void start()
          Starts monitoring the files that have been added.
 void stop()
          Stops monitoring the files that have been added.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiFileTransferMonitor

public MultiFileTransferMonitor()
Method Detail

getListeners

public FileTransferListener[] getListeners()
Access method to get the current FileListener object notified when there are changes with the files added.

Specified by:
getListeners in interface FileTransferMonitor
Returns:
The FileListener.

addFile

public boolean addFile(org.apache.commons.vfs2.FileObject dest,
                       org.apache.commons.vfs2.FileObject source)
Adds a file to be monitored.

Parameters:
dest - The destination file to monitor
source - The source, from which transfer size is computed

addFile

public boolean addFile(org.apache.commons.vfs2.FileObject dest,
                       long size)
Adds a file to be monitored.

Parameters:
dest - The destination file to monitor
size - The total transfer size (size of source)

addFile

public boolean addFile(org.apache.commons.vfs2.FileObject dest,
                       org.apache.commons.vfs2.FileObject source,
                       long size,
                       java.lang.String displayName)
Adds a file to be monitored.

Parameters:
dest - The destination file to monitor
source - The source
size - The total transfer size (size of source)
displayName - The name of the file associated with this file transfer (may be different from destination)

release

public void release(org.apache.commons.vfs2.FileObject file)
Removes a file from being monitored.

Specified by:
release in interface FileTransferMonitor
Parameters:
file - The FileObject to remove from monitoring.

getPollSleep

public long getPollSleep()
Get the delay between runs.

Specified by:
getPollSleep in interface FileTransferMonitor
Returns:
The delay period.

setPollSleep

public void setPollSleep(long delay)
Set the delay between runs.

Specified by:
setPollSleep in interface FileTransferMonitor
Parameters:
delay - The delay period.

getChecksPerRun

public int getChecksPerRun()
get the number of files to check per run.

Returns:
The number of files to check per iteration.

setChecksPerRun

public void setChecksPerRun(int checksPerRun)
set the number of files to check per run. a additional delay will be added if there are more files to check

Parameters:
checksPerRun - a value less than 1 will disable this feature

start

public void start()
Starts monitoring the files that have been added.

Specified by:
start in interface FileTransferMonitor

stop

public void stop()
Stops monitoring the files that have been added.

Specified by:
stop in interface FileTransferMonitor

run

public void run()
Asks the agent for each file being monitored to check its file for changes.

Specified by:
run in interface java.lang.Runnable

fireEvent

public void fireEvent(FileTransferEvent event)
Fires an event to all listeners

Specified by:
fireEvent in interface FileTransferMonitor

fireStartEvent

public void fireStartEvent(org.apache.commons.vfs2.FileObject dest)
Convenience function for firing a "start" event for the transfer

Specified by:
fireStartEvent in interface FileTransferMonitor
Parameters:
dest - The destination file for the transfer to uniquely identify the FileTransferMonitorAgent responsible for firing events

fireCompleteEvent

public void fireCompleteEvent(org.apache.commons.vfs2.FileObject dest)
Convenience function for firing a "complete" event for the transfer

Specified by:
fireCompleteEvent in interface FileTransferMonitor
Parameters:
dest - The destination file for the transfer to uniquely identify the FileTransferMonitorAgent responsible for firing events

monitor

public void monitor(org.apache.commons.vfs2.FileObject destFile,
                    org.apache.commons.vfs2.FileObject srcFile)
Description copied from interface: FileTransferMonitor
Informs this monitor object to monitor a file transfer. If the monitor supports multiple files, adds this to a list of monitored files. Otherwise, sets the current transfer to monitor.

Specified by:
monitor in interface FileTransferMonitor
Parameters:
destFile - transfer destination
srcFile - transfer source
See Also:
addFile(FileObject, FileObject)

monitor

public void monitor(org.apache.commons.vfs2.FileObject destFile,
                    org.apache.commons.vfs2.FileObject srcFile,
                    long size)
See Also:
addFile(FileObject, FileObject, long, String)

monitor

public void monitor(org.apache.commons.vfs2.FileObject destFile,
                    long size)
Description copied from interface: FileTransferMonitor
Informs this monitor object to monitor a file transfer. If the monitor supports multiple files, adds this to a list of monitored files. Otherwise, sets the current one.

Specified by:
monitor in interface FileTransferMonitor
Parameters:
destFile - transfer destination
size - Total transfer size
See Also:
addFile(FileObject, long)

monitor

public void monitor(org.apache.commons.vfs2.FileObject destFile,
                    org.apache.commons.vfs2.FileObject srcFile,
                    long size,
                    java.lang.String displayName)
Informs this monitor object to monitor a file transfer. If the monitor supports multiple files, adds this to a list of monitored files. Otherwise, sets the current transfer to monitor.

Specified by:
monitor in interface FileTransferMonitor
Parameters:
destFile - transfer destination
srcFile - transfer source
size - the size of the source file (total transfer size). If <0, then we determine the transfer size from srcFile
displayName - the name associated with the transfer (may be different than destFile if .part is used)

addListener

public void addListener(FileTransferListener listener)
Adds a listener object to respond to transfer events

Specified by:
addListener in interface FileTransferMonitor

removeListener

public void removeListener(FileTransferListener listener)
Removes a listener object

Specified by:
removeListener in interface FileTransferMonitor