package org.eclipse.ecf.internal.provider.filetransfer.efs; import java.net.URI; import java.net.URL; import org.eclipse.core.filesystem.EFS; import org.eclipse.core.runtime.Assert; import org.eclipse.ecf.core.identity.IDFactory; import org.eclipse.ecf.core.identity.Namespace; import org.eclipse.ecf.core.security.IConnectContext; import org.eclipse.ecf.core.util.Proxy; import org.eclipse.ecf.core.util.StringUtils; import org.eclipse.ecf.filetransfer.IRemoteFileSystemListener; import org.eclipse.ecf.filetransfer.IRemoteFileSystemRequest; import org.eclipse.ecf.filetransfer.RemoteFileSystemException; import org.eclipse.ecf.filetransfer.identity.IFileID; import org.eclipse.ecf.filetransfer.service.IRemoteFileSystemBrowser; import org.eclipse.ecf.provider.filetransfer.identity.FileTransferNamespace; /** * */ public class EFSRemoteFileSystemBrowser implements IRemoteFileSystemBrowser { IConnectContext connectContext; Proxy proxy; public Namespace getBrowseNamespace() { return IDFactory.getDefault().getNamespaceByName(FileTransferNamespace.PROTOCOL); } public IRemoteFileSystemRequest sendBrowseRequest(IFileID directoryOrFileID, IRemoteFileSystemListener listener) throws RemoteFileSystemException { Assert.isNotNull(directoryOrFileID); Assert.isNotNull(listener); URL efsDirectory = null; FileStoreBrowser fsb = null; try { efsDirectory = directoryOrFileID.getURL(); final String path = StringUtils.replaceAll(efsDirectory.getPath(), " ", "%20"); //$NON-NLS-1$ //$NON-NLS-2$ fsb = new FileStoreBrowser(EFS.getStore(new URI(path)), efsDirectory, directoryOrFileID, listener); } catch (final Exception e) { throw new RemoteFileSystemException(e); } return fsb.sendBrowseRequest(); } public Object getAdapter(Class adapter) { return null; } public void setConnectContextForAuthentication(IConnectContext connectContext) { this.connectContext = connectContext; } public void setProxy(Proxy proxy) { this.proxy = proxy; } }