]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.app.api/src/org/argeo/app/api/EntityMimeType.java
Adapt to changes in Argeo Commons
[gpl/argeo-suite.git] / org.argeo.app.api / src / org / argeo / app / api / EntityMimeType.java
1 package org.argeo.app.api;
2
3 import java.nio.charset.Charset;
4 import java.nio.charset.StandardCharsets;
5
6 /** Supported mime types. */
7 public enum EntityMimeType {
8 XML("text/xml", "xml"), CSV("text/csv", "csv");
9
10 private final String mimeType;
11 private final String[] extensions;
12
13 EntityMimeType(String mimeType, String... extensions) {
14 this.mimeType = mimeType;
15 this.extensions = extensions;
16 }
17
18 public String getMimeType() {
19 return mimeType;
20 }
21
22 public String[] getExtensions() {
23 return extensions;
24 }
25
26 public String getDefaultExtension() {
27 if (extensions.length > 0)
28 return extensions[0];
29 else
30 return null;
31 }
32
33 public String toHttpContentType(Charset charset) {
34 if (charset == null)
35 return mimeType;
36 return mimeType + "; charset=" + charset.name();
37 }
38
39 public String toHttpContentType() {
40 if (mimeType.startsWith("text/")) {
41 return toHttpContentType(StandardCharsets.UTF_8);
42 } else {
43 return mimeType;
44 }
45 }
46
47 public static EntityMimeType find(String mimeType) {
48 for (EntityMimeType entityMimeType : values()) {
49 if (entityMimeType.mimeType.equals(mimeType))
50 return entityMimeType;
51 }
52 return null;
53 }
54
55 @Override
56 public String toString() {
57 return mimeType;
58 }
59
60 }