package com.atlassian.labs.speakeasy.util; import org.apache.pdfbox.pdmodel.graphics.predictor.Up; import java.io.File; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * */ public class KeyExtractor { public static final String SPEAKEASY_KEY_SEPARATOR = "----speakeasy-"; private static final Pattern UPLOADED_FILENAME_WITH_VERSION = Pattern.compile("(.*?)-[0-9]+.*"); private static final Pattern TEMP_FILENAME_WITH_VERSION = Pattern.compile("(.*?)" + SPEAKEASY_KEY_SEPARATOR + ".*"); public static String extractFromFilename(String fileName) { String name = stripExtension(fileName); Matcher m = TEMP_FILENAME_WITH_VERSION.matcher(name); if (m.matches()) { return m.group(1); } else { m = UPLOADED_FILENAME_WITH_VERSION.matcher(name); if (m.matches()) { return m.group(1); } } return name; } public static File createExtractableTempFile(String key, String suffix) throws IOException { return File.createTempFile(key + SPEAKEASY_KEY_SEPARATOR, suffix); } private static String stripExtension(String fileName) { if (fileName.endsWith(".zip") || fileName.endsWith(".jar")) { return fileName.substring(0, fileName.length() - 4); } return fileName; } }