org.eclipse.ecf.provider.filetransfer.outgoing
Class MultiProtocolOutgoingAdapter

java.lang.Object
  extended by org.eclipse.ecf.provider.filetransfer.outgoing.MultiProtocolOutgoingAdapter
All Implemented Interfaces:
org.eclipse.core.runtime.IAdaptable, ISendFileTransferContainerAdapter, ISendFileTransfer

public class MultiProtocolOutgoingAdapter
extends java.lang.Object
implements ISendFileTransfer

Multi protocol handler for outgoing file transfer. Multiplexes between Apache httpclient 3.0.1-based file retriever and the URLConnection-based file retriever.


Constructor Summary
MultiProtocolOutgoingAdapter()
           
 
Method Summary
 void addListener(IIncomingFileTransferRequestListener listener)
          Add incoming file transfer listener.
 java.lang.Object getAdapter(java.lang.Class adapter)
           
 Namespace getOutgoingNamespace()
          Get namespace for outgoing file transfer.
 boolean removeListener(IIncomingFileTransferRequestListener listener)
          Remove incoming file transfer listener
 void sendOutgoingRequest(IFileID targetID, java.io.File outgoingFile, IFileTransferListener transferListener, java.util.Map options)
          Send request for outgoing file transfer.
 void sendOutgoingRequest(IFileID targetID, IFileTransferInfo localFileToSend, IFileTransferListener transferListener, java.util.Map options)
          Send request for outgoing file transfer.
 void setConnectContextForAuthentication(IConnectContext connectContext)
          Set connect context for authentication upon subsequent ISendFileTransferContainerAdapter.sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map).
 void setProxy(Proxy proxy)
          Set proxy for use upon subsequent ISendFileTransferContainerAdapter.sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiProtocolOutgoingAdapter

public MultiProtocolOutgoingAdapter()
Method Detail

getOutgoingNamespace

public Namespace getOutgoingNamespace()
Description copied from interface: ISendFileTransferContainerAdapter
Get namespace for outgoing file transfer.

Specified by:
getOutgoingNamespace in interface ISendFileTransferContainerAdapter
Returns:
Namespace for outgoing IFileID instances. Will not return null.

setConnectContextForAuthentication

public void setConnectContextForAuthentication(IConnectContext connectContext)
Description copied from interface: ISendFileTransferContainerAdapter
Set connect context for authentication upon subsequent ISendFileTransferContainerAdapter.sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map). This method should be called with a non-null connectContext in order to allow authentication to occur during call to ISendFileTransferContainerAdapter.sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map).

Specified by:
setConnectContextForAuthentication in interface ISendFileTransferContainerAdapter
Parameters:
connectContext - the connect context to use for authenticating during subsequent call to ISendFileTransferContainerAdapter.sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map). If null, then no authentication will be attempted.

setProxy

public void setProxy(Proxy proxy)
Description copied from interface: ISendFileTransferContainerAdapter
Set proxy for use upon subsequent ISendFileTransferContainerAdapter.sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map). This method should be called with a non-null proxy to allow the given proxy to be used in subsequent calls to ISendFileTransferContainerAdapter.sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map).

Specified by:
setProxy in interface ISendFileTransferContainerAdapter
Parameters:
proxy - the proxy to use for subsequent calls to ISendFileTransferContainerAdapter.sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map). If null, then no proxy will be used.

sendOutgoingRequest

public void sendOutgoingRequest(IFileID targetID,
                                java.io.File outgoingFile,
                                IFileTransferListener transferListener,
                                java.util.Map options)
                         throws SendFileTransferException
Description copied from interface: ISendFileTransferContainerAdapter
Send request for outgoing file transfer. This method is used to initiate a file transfer to a targetReceiver (first parameter) of the localFileToSend (second parameter). File transfer events are asynchronously delivered to the file transferListener (third parameter)

Specified by:
sendOutgoingRequest in interface ISendFileTransferContainerAdapter
Parameters:
targetID - the ID of the remote to receive the file transfer request. Must not be null.
outgoingFile - the File for the local file to send. Must not be null.
transferListener - a IFileTransferListener for responding to file transfer events. Must not be null. If the target receiver responds then an IOutgoingFileTransfer will be delivered to the listener
options - a Map of options associated with sendOutgoingRequest. The particular name/value pairs will be unique to the individual providers. May be null.
Throws:
SendFileTransferException - if the provider is not connected or is not in the correct state for initiating file transfer

addListener

public void addListener(IIncomingFileTransferRequestListener listener)
Description copied from interface: ISendFileTransferContainerAdapter
Add incoming file transfer listener. If the underlying provider supports receiving file transfer requests

Specified by:
addListener in interface ISendFileTransferContainerAdapter
Parameters:
listener - to receive incoming file transfer request events. Must not be null.

removeListener

public boolean removeListener(IIncomingFileTransferRequestListener listener)
Description copied from interface: ISendFileTransferContainerAdapter
Remove incoming file transfer listener

Specified by:
removeListener in interface ISendFileTransferContainerAdapter
Parameters:
listener - the listener to remove. Must not be null.
Returns:
true if listener actually removed, false otherwise

sendOutgoingRequest

public void sendOutgoingRequest(IFileID targetID,
                                IFileTransferInfo localFileToSend,
                                IFileTransferListener transferListener,
                                java.util.Map options)
                         throws SendFileTransferException
Description copied from interface: ISendFileTransferContainerAdapter
Send request for outgoing file transfer. This method is used to initiate a file transfer to a targetReceiver (first parameter) of the localFileToSend (second parameter). File transfer events are asynchronously delivered to the file transferListener (third parameter)

Specified by:
sendOutgoingRequest in interface ISendFileTransferContainerAdapter
Parameters:
targetID - the ID of the remote to receive the file transfer request. Must not be should not be null.
localFileToSend - the IFileTransferInfo for the local file to send. Must not be should not be null.
transferListener - a IFileTransferListener for responding to file transfer events. Must not be should not be null.. If the target receiver responds then an IOutgoingFileTransferResponseEvent will be delivered to the listener
options - a Map of options associated with sendOutgoingRequest. The particular name/value pairs will be unique to the individual providers. May be should not be null..
Throws:
SendFileTransferException - if the provider is not connected or is not in the correct state for initiating file transfer

getAdapter

public java.lang.Object getAdapter(java.lang.Class adapter)
Specified by:
getAdapter in interface org.eclipse.core.runtime.IAdaptable