org.eclipse.ecf.provider.filetransfer.browse

## Class AbstractFileSystemBrowser

- java.lang.Object
- - org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser

Direct Known Subclasses:
  HttpClientFileSystemBrowser, HttpClientFileSystemBrowser, LocalFileSystemBrowser, URLFileSystemBrowser

    public abstract class AbstractFileSystemBrowser
    extends Object

Abstract class for browsing an efs file system.

### Nested Class Summary

Nested Classes
`protected class` `AbstractFileSystemBrowser.DirectoryJob`
`class` `AbstractFileSystemBrowser.RemoteFileSystemRequest`

### Field Summary

Fields
`protected IConnectContext` `connectContext`
`protected URL` `directoryOrFile`
`protected IFileID` `fileID`
`protected AbstractFileSystemBrowser.DirectoryJob` `job`
`protected IRemoteFileSystemListener` `listener`
`protected Proxy` `proxy`
`protected IRemoteFile[]` `remoteFiles`

### Constructor Summary

Constructors
Constructor and Description
`AbstractFileSystemBrowser(IFileID directoryOrFileID, IRemoteFileSystemListener listener, URL url, IConnectContext connectContext, Proxy proxy)`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected void` `cancel()`
`protected void` `cleanUp()`
`protected IRemoteFileSystemEvent` `createRemoteFileEvent()`
`protected IRemoteFileSystemRequest` `createRemoteFileSystemRequest()`
`protected Exception` `getException()`
`protected boolean` `isCanceled()`
`protected UserCancelledException` `newUserCancelledException()`
`protected abstract void` `runRequest()` Run the actual request.
`protected org.eclipse.core.net.proxy.IProxyData` `selectProxyFromProxies(String protocol, org.eclipse.core.net.proxy.IProxyData[] proxies)` Select a single proxy from a set of proxies available for the given host.
`IRemoteFileSystemRequest` `sendBrowseRequest()`
`protected void` `setCanceled(Exception e)`
`protected void` `setException(Exception exception)`
`protected void` `setupProxies()`
`protected abstract void` `setupProxy(Proxy proxy)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### fileID

    protected IFileID fileID

#### listener

    protected IRemoteFileSystemListener listener

#### remoteFiles

    protected IRemoteFile[] remoteFiles

#### proxy

    protected Proxy proxy

#### directoryOrFile

    protected URL directoryOrFile

#### connectContext

    protected IConnectContext connectContext

#### job

    protected AbstractFileSystemBrowser.DirectoryJob job

### Constructor Detail

#### AbstractFileSystemBrowser

    public AbstractFileSystemBrowser(IFileID directoryOrFileID,
                                     IRemoteFileSystemListener listener,
                                     URL url,
                                     IConnectContext connectContext,
                                     Proxy proxy)

### Method Detail

#### cancel

    protected void cancel()

#### cleanUp

    protected void cleanUp()

#### runRequest

    protected abstract void runRequest()
                                throws Exception

Run the actual request. This method is called within the job created to actually get the directory or file information.

Throws:
  `Exception` - if some problem with making the request or receiving response to the request.

#### sendBrowseRequest

    public IRemoteFileSystemRequest sendBrowseRequest()

#### createRemoteFileSystemRequest

    protected IRemoteFileSystemRequest createRemoteFileSystemRequest()

#### createRemoteFileEvent

    protected IRemoteFileSystemEvent createRemoteFileEvent()

Returns:
  file system directory event

#### setupProxy

    protected abstract void setupProxy(Proxy proxy)

#### selectProxyFromProxies

    protected org.eclipse.core.net.proxy.IProxyData selectProxyFromProxies(String protocol,
                                                                           org.eclipse.core.net.proxy.IProxyData[] proxies)

Select a single proxy from a set of proxies available for the given host. This implementation selects in the following manner: 1) If proxies provided is null or array of 0 length, null is returned. If only one proxy is available (array of length 1) then the entry is returned. If proxies provided is length greater than 1, then if the type of a proxy in the array matches the given protocol (e.g. http, https), then the first matching proxy is returned. If the protocol does not match any of the proxies, then the *first* proxy (i.e. proxies[0]) is returned. Subclasses may override if desired.

Parameters:
  `protocol` - the target protocol (e.g. http, https, scp, etc). Will not be `null`.
  `proxies` - the proxies to select from. May be `null` or array of length 0.
Returns:
  proxy data selected from the proxies provided.

#### setupProxies

    protected void setupProxies()

#### setException

    protected void setException(Exception exception)

#### getException

    protected Exception getException()

#### isCanceled

    protected boolean isCanceled()

#### setCanceled

    protected void setCanceled(Exception e)

#### newUserCancelledException

    protected UserCancelledException newUserCancelledException()