package com.abiquo.appliancemanager.filesystems; import java.io.InputStream; import java.net.URL; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.abiquo.appliancemanager.exceptions.DownloadException; public class FileFactory { private final static Logger log = LoggerFactory.getLogger(FileFactory.class); public static InputStream open(URL target) throws DownloadException { IFileSystem file; String protocol = target.getProtocol().toUpperCase(); log.debug("Opening file protocol "+protocol+" complet uri "+target.toString()); if ("FILE".equalsIgnoreCase(protocol)) { file = new FileLocal(); } else if ("HTTP".equalsIgnoreCase(protocol)) { file = new FileHttp(); } else if ("FTP".equalsIgnoreCase(protocol)) { file = new FileFTP(); } else if ("S3".equalsIgnoreCase(protocol)) { file = new FileS3(); } else { final String msg = "Unknow protocol " + protocol; throw new DownloadException(msg); } return file.open(target); } }