|
|
@@ -0,0 +1,26 @@ |
|
|
|
package org.perfectable.repositable; |
|
|
|
|
|
|
|
import java.nio.file.Path; |
|
|
|
import java.nio.file.spi.FileTypeDetector; |
|
|
|
|
|
|
|
import com.google.common.collect.ImmutableMap; |
|
|
|
import org.checkerframework.checker.nullness.qual.Nullable; |
|
|
|
|
|
|
|
public class ExtensionOnlyFileTypeDetector extends FileTypeDetector { |
|
|
|
private static final ImmutableMap<String, String> REGISTERED_EXTENSIONS = ImmutableMap.<String, String>builder() |
|
|
|
.put("jar", "application/java-archive") |
|
|
|
.put("asc", "application/pgp-signature") |
|
|
|
.build(); |
|
|
|
|
|
|
|
@SuppressWarnings("override.return.invalid") |
|
|
|
@Override |
|
|
|
public @Nullable String probeContentType(Path path) { |
|
|
|
String fileName = path.getFileName().toString(); |
|
|
|
int extensionSeparator = fileName.lastIndexOf("."); |
|
|
|
if (extensionSeparator < 0) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
String extension = fileName.substring(extensionSeparator + 1); |
|
|
|
return REGISTERED_EXTENSIONS.get(extension); |
|
|
|
} |
|
|
|
} |