X-Git-Url: http://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=core%2Forg.argeo.entity.api%2Fsrc%2Forg%2Fargeo%2Fentity%2FEntityMimeType.java;fp=core%2Forg.argeo.entity.api%2Fsrc%2Forg%2Fargeo%2Fentity%2FEntityMimeType.java;h=997f1beaa77c44483d259521c1ab644c225912e5;hp=0000000000000000000000000000000000000000;hb=177fcb9154fed58d582f41fb9aa14a16930d4202;hpb=30b97a74faf0dcbc6d787bb88b524bfc53a7f251 diff --git a/core/org.argeo.entity.api/src/org/argeo/entity/EntityMimeType.java b/core/org.argeo.entity.api/src/org/argeo/entity/EntityMimeType.java new file mode 100644 index 0000000..997f1be --- /dev/null +++ b/core/org.argeo.entity.api/src/org/argeo/entity/EntityMimeType.java @@ -0,0 +1,60 @@ +package org.argeo.entity; + +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; + } + +}