Interface ISendFileTransferContainerAdapter

All Superinterfaces:
org.eclipse.core.runtime.IAdaptable
All Known Subinterfaces:
ISendFileTransfer
All Known Implementing Classes:
AbstractOutgoingFileTransfer, AbstractUrlConnectionOutgoingFileTransfer, LocalFileOutgoingFileTransfer, MultiProtocolOutgoingAdapter

public interface ISendFileTransferContainerAdapter extends org.eclipse.core.runtime.IAdaptable
Entry point outgoing file transfer container adapter. This adapter interface allows providers to expose file sending semantics to clients in a transport independent manner. To be used, a non-null adapter reference must be returned from a call to IContainer.getAdapter(Class). Once a non-null reference is retrieved, then it may be used to request to send a file to a remote user. Events will then be asynchronously delivered to the provided listener to complete file transfer.

To request and initiate sending a local file to a remote user:

      // Get ISendFileTransferContainerAdapter adapter
       ISendFileTransferContainerAdapter ftc = (ISendFileTransferContainerAdapter) container.getAdapter(ISendFileTransferContainerAdapter.class);
       if (ftc != null) {
         // Create listener for receiving/responding to asynchronous file transfer events
             IFileTransferListener listener = new IFileTransferListener() {
                     public void handleTransferEvent(IFileTransferEvent event) {
                   // If this event is a response to the transfer request, check if file transfer rejected
                   if (event instanceof IOutgoingFileTransferResponseEvent) {
                       IOutgoingFileTransferResponseEvent oftr = (IOutgoingFileTransferResponseEvent) event;
                       if (!oftr.requestAccepted()) {
                           // request rejected...tell user
                       }
                   }
                     }
             };
           // Specify the target file ID
           // This following specifies the path:  ~/path/filename.ext
           ID targetID = FileIDFactory.getDefault().createFileID(ftc.getOutgoingNamespace(),new URL("scp://user@host/path/filename.ext"));
           // This following specifies the path:  /path/filename.ext
           // ID targetID = FileIDFactory.getDefault().createFileID(ftc.getOutgoingNamespace(),new URL("scp://user@host//path/filename.ext"));
           // Specify the local file to send
           File localFileToSend = new File("filename");
           // Actually send outgoing file request to remote user.  
           ftc.sendOutgoingRequest(targetID, localFileToSend, listener, null);
       }
 
For the sender the delivered events will be: and for the IIncomingFileTransferRequestListener events delivered will be:
  • Method Details

    • sendOutgoingRequest

      void sendOutgoingRequest(IFileID targetReceiver, IFileTransferInfo localFileToSend, IFileTransferListener transferListener, Map options) throws SendFileTransferException
      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)
      Parameters:
      targetReceiver - 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
    • sendOutgoingRequest

      void sendOutgoingRequest(IFileID targetReceiver, File localFileToSend, IFileTransferListener transferListener, Map options) throws SendFileTransferException
      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)
      Parameters:
      targetReceiver - the ID of the remote to receive the file transfer request. Must not be null.
      localFileToSend - 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

      void addListener(IIncomingFileTransferRequestListener listener)
      Add incoming file transfer listener. If the underlying provider supports receiving file transfer requests
      Parameters:
      listener - to receive incoming file transfer request events. Must not be null.
    • removeListener

      boolean removeListener(IIncomingFileTransferRequestListener listener)
      Remove incoming file transfer listener
      Parameters:
      listener - the listener to remove. Must not be null.
      Returns:
      true if listener actually removed, false otherwise
    • getOutgoingNamespace

      Namespace getOutgoingNamespace()
      Get namespace for outgoing file transfer.
      Returns:
      Namespace for outgoing IFileID instances. Will not return null.
    • setConnectContextForAuthentication

      void setConnectContextForAuthentication(IConnectContext connectContext)
      Set connect context for authentication upon subsequent 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 sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map).
      Parameters:
      connectContext - the connect context to use for authenticating during subsequent call to sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map). If null, then no authentication will be attempted.
    • setProxy

      void setProxy(Proxy proxy)
      Set proxy for use upon subsequent 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 sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map).
      Parameters:
      proxy - the proxy to use for subsequent calls to sendOutgoingRequest(IFileID, IFileTransferInfo, IFileTransferListener, Map). If null, then no proxy will be used.