All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.plsar.resources.SimpleMimeResoluter Maven / Gradle / Ivy

Go to download

PLSA.R is an Open Source Server + Framework Environment for small to large scale requirements. There are no static references, no file reads, access to static fields per request. Everything is either cached and or instantiated on the fly. PLSA.R runs via one command so there are no .war files to deploy, no additional plugins to install it is a simple yet powerful alternative to container deployment environments.

There is a newer version: 3.0.1
Show newest version
package net.plsar.resources;

import java.util.HashMap;
import java.util.Map;

public class SimpleMimeResoluter {

    String resourceUri;

    public SimpleMimeResoluter(String resourceUri){
        this.resourceUri = resourceUri;
    }

    public Boolean within(String key){
        return MIME_MAP.containsKey(key);
    }

    public String resolve() {
        String key = getExt(resourceUri).toLowerCase();
        return MIME_MAP.containsKey(key) ? MIME_MAP.get(key) : "text/html";
    }

    public static String getExt(String path) {
        int slashIndex = path.lastIndexOf('/');
        String basename = (slashIndex < 0) ? path : path.substring(slashIndex + 1);

        int dotIdx = basename.lastIndexOf('.');
        if (dotIdx >= 0) {
            return basename.substring(dotIdx + 1);
        } else {
            return "";
        }
    }

    static final Map MIME_MAP = new HashMap<>();

    static {
        MIME_MAP.put("appcache", "text/cache-manifest");
        MIME_MAP.put("css", "text/css");
        MIME_MAP.put("gif", "image/gif");
        MIME_MAP.put("html", "text/html");
        MIME_MAP.put("js", "application/javascript");
        MIME_MAP.put("json", "application/json");
        MIME_MAP.put("jpg", "image/jpeg");
        MIME_MAP.put("jpeg", "image/jpeg");
        MIME_MAP.put("mp4", "video/mp4");
        MIME_MAP.put("mp3", "audio/mp3");
        MIME_MAP.put("pdf", "application/pdf");
        MIME_MAP.put("png", "image/png");
        MIME_MAP.put("svg", "image/svg+xml");
        MIME_MAP.put("xlsm", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        MIME_MAP.put("xml", "application/xml");
        MIME_MAP.put("zip", "application/zip");
        MIME_MAP.put("md", "text/plain");
        MIME_MAP.put("txt", "text/plain");
        MIME_MAP.put("php", "text/plain");
    };
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy