/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.tools.gui.downloadmanager; import java.io.FileNotFoundException; import java.io.InputStream; import java.net.URISyntaxException; import java.net.URL; import java.util.HashMap; import de.cismet.commons.security.AccessHandler; import de.cismet.security.WebAccessManager; import de.cismet.security.exceptions.AccessMethodIsNotSupportedException; import de.cismet.security.exceptions.NoHandlerForURLException; import de.cismet.security.exceptions.RequestFailedException; /** * The objects of this class represent a HTTP or a FTP download. The objects of this class are observed by the download * manager. * * @author DOCUMENT ME! * @version $Revision$, $Date$ */ public class HttpOrFtpDownload extends HttpDownload { //~ Constructors ----------------------------------------------------------- /** * Creates a new HttpOrFtpDownload object. */ public HttpOrFtpDownload() { } /** * Creates a new HttpOrFtpDownload object. * * @param url DOCUMENT ME! * @param request DOCUMENT ME! * @param directory DOCUMENT ME! * @param title DOCUMENT ME! * @param filename DOCUMENT ME! * @param extension DOCUMENT ME! */ public HttpOrFtpDownload(final URL url, final String request, final String directory, final String title, final String filename, final String extension) { super(url, request, directory, title, filename, extension); } /** * Creates a new HttpOrFtpDownload object. * * @param url DOCUMENT ME! * @param request DOCUMENT ME! * @param headers DOCUMENT ME! * @param directory DOCUMENT ME! * @param title DOCUMENT ME! * @param filename DOCUMENT ME! * @param extension DOCUMENT ME! */ public HttpOrFtpDownload(final URL url, final String request, final HashMap<String, String> headers, final String directory, final String title, final String filename, final String extension) { super(url, request, headers, directory, title, filename, extension); } //~ Methods ---------------------------------------------------------------- @Override protected InputStream getUrlInputStreamWithWebAcessManager(final URL url) throws URISyntaxException, FileNotFoundException, AccessMethodIsNotSupportedException, RequestFailedException, NoHandlerForURLException, Exception { InputStream inputStream = null; if ("ftp".equalsIgnoreCase(url.getProtocol())) { WebAccessManager.getInstance().registerAccessHandler(url, AccessHandler.ACCESS_HANDLER_TYPES.FTP); } try { inputStream = super.getUrlInputStreamWithWebAcessManager(url); } finally { if ("ftp".equalsIgnoreCase(url.getProtocol())) { WebAccessManager.getInstance().deregisterAccessHandler(url); } } return inputStream; } }