/** * */ package com.intuit.tank.storage; import java.util.HashMap; import java.util.Map; import javax.annotation.Nonnull; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; /** * @author denisa * */ public class FileStorageFactory { private static final Map<String, FileStorage> storageMap = new HashMap<String, FileStorage>(); public static FileStorage getFileStorage(@Nonnull String base, boolean compress) { String key = base + compress; FileStorage ret = storageMap.get(key); if (ret == null) { if (base.startsWith("s3:")) { String s = StringUtils.removeStart(FilenameUtils.normalizeNoEndSeparator(base.substring(3)), "/"); ret = new S3FileStorage(s, compress); } else { ret = new FileSystemFileStorage(base, compress); } storageMap.put(key, ret); } return ret; } }