X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.api.app%2Fsrc%2Forg%2Fargeo%2Fapi%2Fapp%2FEntityMimeType.java;fp=org.argeo.api.app%2Fsrc%2Forg%2Fargeo%2Fapi%2Fapp%2FEntityMimeType.java;h=1a0f64cb979b0fd792a6c7cf88031c2d9f348a12;hp=0000000000000000000000000000000000000000;hb=ddc605514409368c46a8dadbbd914c4b1e61596a;hpb=db14c82991d4e17c45b2a5789dd94a6a839f5eaa diff --git a/org.argeo.api.app/src/org/argeo/api/app/EntityMimeType.java b/org.argeo.api.app/src/org/argeo/api/app/EntityMimeType.java new file mode 100644 index 0000000..1a0f64c --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/EntityMimeType.java @@ -0,0 +1,60 @@ +package org.argeo.api.app; + +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + +/** Supported mime types. */ +public enum EntityMimeType { + XML("text/xml", "xml"), CSV("text/csv", "csv"); + + private final String mimeType; + private final String[] extensions; + + EntityMimeType(String mimeType, String... extensions) { + this.mimeType = mimeType; + this.extensions = extensions; + } + + public String getMimeType() { + return mimeType; + } + + public String[] getExtensions() { + return extensions; + } + + public String getDefaultExtension() { + if (extensions.length > 0) + return extensions[0]; + else + return null; + } + + public String toHttpContentType(Charset charset) { + if (charset == null) + return mimeType; + return mimeType + "; charset=" + charset.name(); + } + + public String toHttpContentType() { + if (mimeType.startsWith("text/")) { + return toHttpContentType(StandardCharsets.UTF_8); + } else { + return mimeType; + } + } + + public static EntityMimeType find(String mimeType) { + for (EntityMimeType entityMimeType : values()) { + if (entityMimeType.mimeType.equals(mimeType)) + return entityMimeType; + } + return null; + } + + @Override + public String toString() { + return mimeType; + } + +}