Package org.eclipse.ecf.provider.filetransfer.outgoing

## Class MultiProtocolOutgoingAdapter

- java.lang.Object
- - org.eclipse.ecf.provider.filetransfer.outgoing.MultiProtocolOutgoingAdapter

All Implemented Interfaces:
  `org.eclipse.core.runtime.IAdaptable`, `ISendFileTransferContainerAdapter`, `ISendFileTransfer`

    public class MultiProtocolOutgoingAdapter
    extends 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

Constructors
`MultiProtocolOutgoingAdapter()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addListener​(IIncomingFileTransferRequestListener listener)` Add incoming file transfer listener.
`<T> T` `getAdapter​(Class<T> adapter)`
`Namespace` `getOutgoingNamespace()` Get namespace for outgoing file transfer.
`boolean` `removeListener​(IIncomingFileTransferRequestListener listener)` Remove incoming file transfer listener
`void` `sendOutgoingRequest​(IFileID targetID, File outgoingFile, IFileTransferListener transferListener, Map options)` Send request for outgoing file transfer.
`void` `sendOutgoingRequest​(IFileID targetID, IFileTransferInfo localFileToSend, IFileTransferListener transferListener, 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,
                                    File outgoingFile,
                                    IFileTransferListener transferListener,
                                    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,
                                    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 <T> T getAdapter​(Class<T> adapter)

Specified by:
  `getAdapter` in interface `org.eclipse.core.runtime.IAdaptable`