CopyStreamAdapterpublic class CopyStreamAdapter extends Object implements CopyStreamListenerThe CopyStreamAdapter will relay CopyStreamEvents to a list of listeners
when either of its bytesTransferred() methods are called. Its purpose
is to facilitate the notification of the progress of a copy operation
performed by one of the static copyStream() methods in
org.apache.commons.io.Util to multiple listeners. The static
copyStream() methods invoke the
bytesTransfered(long, int) of a CopyStreamListener for performance
reasons and also because multiple listeners cannot be registered given
that the methods are static.
|
Fields Summary |
---|
private org.apache.commons.net.util.ListenerList | internalListeners |
Constructors Summary |
---|
public CopyStreamAdapter()Creates a new copyStreamAdapter.
internalListeners = new ListenerList();
|
Methods Summary |
---|
public void | addCopyStreamListener(CopyStreamListener listener)Registers a CopyStreamListener to receive CopyStreamEvents.
Although this method is not declared to be synchronized, it is
implemented in a thread safe manner.
internalListeners.addListener(listener);
| public void | bytesTransferred(CopyStreamEvent event)This method is invoked by a CopyStreamEvent source after copying
a block of bytes from a stream. The CopyStreamEvent will contain
the total number of bytes transferred so far and the number of bytes
transferred in the last write. The CopyStreamAdapater will relay
the event to all of its registered listeners, listing itself as the
source of the event.
bytesTransferred(event.getTotalBytesTransferred(),
event.getBytesTransferred(),
event.getStreamSize());
| public void | bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize)This method is not part of the JavaBeans model and is used by the
static methods in the org.apache.commons.io.Util class for efficiency.
It is invoked after a block of bytes to inform the listener of the
transfer. The CopyStreamAdapater will create a CopyStreamEvent
from the arguments and relay the event to all of its registered
listeners, listing itself as the source of the event.
Enumeration listeners;
CopyStreamEvent event;
listeners = internalListeners.getListeners();
event = new CopyStreamEvent(this,
totalBytesTransferred,
bytesTransferred,
streamSize);
while (listeners.hasMoreElements())
{
((CopyStreamListener) (listeners.nextElement())).
bytesTransferred(event);
}
| public void | removeCopyStreamListener(CopyStreamListener listener)Unregisters a CopyStreamListener. Although this method is not
synchronized, it is implemented in a thread safe manner.
internalListeners.removeListener(listener);
|
|