11package org.ktypeparser.type
22
3+ import org.ktypeparser.type.MediaSuperType.*
4+
35private const val APPLICATION_TYPE = " application"
46private const val AUDIO_TYPE = " audio"
57private const val IMAGE_TYPE = " image"
@@ -8,125 +10,134 @@ private const val VIDEO_TYPE = "video"
810
911private const val WILDCARD = " *"
1012
11- enum class MediaType (val type : String , val subType : String ) {
12- EMPTY (" application" ," x-empty" ),
13+ enum class MediaSuperType {
14+ OTHER ,
15+ TEXT ,
16+ IMAGE ,
17+ AUDIO ,
18+ VIDEO ,
19+ APPLICATION
20+ }
21+
22+ enum class MediaType (val type : String , val subType : String , val superType : MediaSuperType ) {
23+ EMPTY (" application" , " x-empty" , OTHER ),
1324
14- ANY_TYPE (WILDCARD , WILDCARD ),
15- ANY_TEXT_TYPE (TEXT_TYPE , WILDCARD ),
16- ANY_IMAGE_TYPE (IMAGE_TYPE , WILDCARD ),
17- ANY_AUDIO_TYPE (AUDIO_TYPE , WILDCARD ),
18- ANY_VIDEO_TYPE (VIDEO_TYPE , WILDCARD ),
19- ANY_APPLICATION_TYPE (APPLICATION_TYPE , WILDCARD ),
25+ ANY_TYPE (WILDCARD , WILDCARD , OTHER ),
26+ ANY_TEXT_TYPE (TEXT_TYPE , WILDCARD , TEXT ),
27+ ANY_IMAGE_TYPE (IMAGE_TYPE , WILDCARD , IMAGE ),
28+ ANY_AUDIO_TYPE (AUDIO_TYPE , WILDCARD , AUDIO ),
29+ ANY_VIDEO_TYPE (VIDEO_TYPE , WILDCARD , VIDEO ),
30+ ANY_APPLICATION_TYPE (APPLICATION_TYPE , WILDCARD , APPLICATION ),
2031
2132 /* TEXT TYPES */
22- CSS (TEXT_TYPE , " css" ),
23- CSV (TEXT_TYPE , " csv" ),
24- HTML (TEXT_TYPE , " html" ),
25- I_CALENDAR (TEXT_TYPE , " calendar" ),
26- PLAIN_TEXT (TEXT_TYPE , " plain" ),
27- TEXT_JAVASCRIPT (TEXT_TYPE , " javascript" ),
28- TSV (TEXT_TYPE , " tab-separated-values" ),
29- VCARD (TEXT_TYPE , " vcard" ),
30- WML (TEXT_TYPE , " vnd.wap.wml" ),
31- XML (TEXT_TYPE , " xml" ),
32- VTT (TEXT_TYPE , " vtt" ),
33+ CSS (TEXT_TYPE , " css" , TEXT ),
34+ CSV (TEXT_TYPE , " csv" , TEXT ),
35+ HTML (TEXT_TYPE , " html" , TEXT ),
36+ I_CALENDAR (TEXT_TYPE , " calendar" , TEXT ),
37+ PLAIN_TEXT (TEXT_TYPE , " plain" , TEXT ),
38+ TEXT_JAVASCRIPT (TEXT_TYPE , " javascript" , TEXT ),
39+ TSV (TEXT_TYPE , " tab-separated-values" , TEXT ),
40+ VCARD (TEXT_TYPE , " vcard" , TEXT ),
41+ WML (TEXT_TYPE , " vnd.wap.wml" , TEXT ),
42+ XML (TEXT_TYPE , " xml" , TEXT ),
43+ VTT (TEXT_TYPE , " vtt" , TEXT ),
3344
3445 /* IMAGE TYPES */
35- BMP (IMAGE_TYPE , " bmp" ),
36- CRW (IMAGE_TYPE , " x-canon-crw" ),
37- GIF (IMAGE_TYPE , " gif" ),
38- ICO (IMAGE_TYPE , " vnd.microsoft.icon" ),
39- JPEG (IMAGE_TYPE , " jpeg" ),
40- PNG (IMAGE_TYPE , " png" ),
41- PSD (IMAGE_TYPE , " vnd.adobe.photoshop" ),
42- SVG (IMAGE_TYPE , " svg+xml" ),
43- TIFF (IMAGE_TYPE , " tiff" ),
44- WEBP (IMAGE_TYPE , " webp" ),
45- HEIF (IMAGE_TYPE , " heif" ),
46- JP2K (IMAGE_TYPE , " jp2" ),
46+ BMP (IMAGE_TYPE , " bmp" , IMAGE ),
47+ CRW (IMAGE_TYPE , " x-canon-crw" , IMAGE ),
48+ GIF (IMAGE_TYPE , " gif" , IMAGE ),
49+ ICO (IMAGE_TYPE , " vnd.microsoft.icon" , IMAGE ),
50+ JPEG (IMAGE_TYPE , " jpeg" , IMAGE ),
51+ PNG (IMAGE_TYPE , " png" , IMAGE ),
52+ PSD (IMAGE_TYPE , " vnd.adobe.photoshop" , IMAGE ),
53+ SVG (IMAGE_TYPE , " svg+xml" , IMAGE ),
54+ TIFF (IMAGE_TYPE , " tiff" , IMAGE ),
55+ WEBP (IMAGE_TYPE , " webp" , IMAGE ),
56+ HEIF (IMAGE_TYPE , " heif" , IMAGE ),
57+ JP2K (IMAGE_TYPE , " jp2" , IMAGE ),
4758
4859 /* AUDIO TYPES */
49- MP4_AUDIO (AUDIO_TYPE , " mp4" ),
50- MPEG_AUDIO (AUDIO_TYPE , " mpeg" ),
51- OGG_AUDIO (AUDIO_TYPE , " ogg" ),
52- WEBM_AUDIO (AUDIO_TYPE , " webm" ),
53- L16_AUDIO (AUDIO_TYPE , " l16" ),
54- L24_AUDIO (AUDIO_TYPE , " l24" ),
55- BASIC_AUDIO (AUDIO_TYPE , " basic" ),
56- AAC_AUDIO (AUDIO_TYPE , " aac" ),
57- VORBIS_AUDIO (AUDIO_TYPE , " vorbis" ),
58- WMA_AUDIO (AUDIO_TYPE , " x-ms-wma" ),
59- WAX_AUDIO (AUDIO_TYPE , " x-ms-wax" ),
60- VND_REAL_AUDIO (AUDIO_TYPE , " vnd.rn-realaudio" ),
61- VND_WAVE_AUDIO (AUDIO_TYPE , " vnd.wave" ),
60+ MP4_AUDIO (AUDIO_TYPE , " mp4" , AUDIO ),
61+ MPEG_AUDIO (AUDIO_TYPE , " mpeg" , AUDIO ),
62+ OGG_AUDIO (AUDIO_TYPE , " ogg" , AUDIO ),
63+ WEBM_AUDIO (AUDIO_TYPE , " webm" , AUDIO ),
64+ L16_AUDIO (AUDIO_TYPE , " l16" , AUDIO ),
65+ L24_AUDIO (AUDIO_TYPE , " l24" , AUDIO ),
66+ BASIC_AUDIO (AUDIO_TYPE , " basic" , AUDIO ),
67+ AAC_AUDIO (AUDIO_TYPE , " aac" , AUDIO ),
68+ VORBIS_AUDIO (AUDIO_TYPE , " vorbis" , AUDIO ),
69+ WMA_AUDIO (AUDIO_TYPE , " x-ms-wma" , AUDIO ),
70+ WAX_AUDIO (AUDIO_TYPE , " x-ms-wax" , AUDIO ),
71+ VND_REAL_AUDIO (AUDIO_TYPE , " vnd.rn-realaudio" , AUDIO ),
72+ VND_WAVE_AUDIO (AUDIO_TYPE , " vnd.wave" , AUDIO ),
6273
6374 /* VIDEO TYPES */
64- MP4_VIDEO (VIDEO_TYPE , " mp4" ),
65- MPEG_VIDEO (VIDEO_TYPE , " mpeg" ),
66- OGG_VIDEO (VIDEO_TYPE , " ogg" ),
67- QUICKTIME (VIDEO_TYPE , " quicktime" ),
68- WEBM_VIDEO (VIDEO_TYPE , " webm" ),
69- WMV (VIDEO_TYPE , " x-ms-wmv" ),
70- FLV_VIDEO (VIDEO_TYPE , " x-flv" ),
71- THREE_GPP_VIDEO (VIDEO_TYPE , " 3gpp" ),
72- THREE_GPP2_VIDEO (VIDEO_TYPE , " 3gpp2" ),
75+ MP4_VIDEO (VIDEO_TYPE , " mp4" , VIDEO ),
76+ MPEG_VIDEO (VIDEO_TYPE , " mpeg" , VIDEO ),
77+ OGG_VIDEO (VIDEO_TYPE , " ogg" , VIDEO ),
78+ QUICKTIME (VIDEO_TYPE , " quicktime" , VIDEO ),
79+ WEBM_VIDEO (VIDEO_TYPE , " webm" , VIDEO ),
80+ WMV (VIDEO_TYPE , " x-ms-wmv" , VIDEO ),
81+ FLV_VIDEO (VIDEO_TYPE , " x-flv" , VIDEO ),
82+ THREE_GPP_VIDEO (VIDEO_TYPE , " 3gpp" , VIDEO ),
83+ THREE_GPP2_VIDEO (VIDEO_TYPE , " 3gpp2" , VIDEO ),
7384
7485 /* APPLICATION TYPES */
75- APPLICATION_XML (APPLICATION_TYPE , " xml" ),
76- ATOM (APPLICATION_TYPE , " atom+xml" ),
77- BZIP2 (APPLICATION_TYPE , " x-bzip2" ),
78- DART (APPLICATION_TYPE , " dart" ),
79- APPLE_PASSBOOK (APPLICATION_TYPE , " vnd.apple.pkpass" ),
80- EOT (APPLICATION_TYPE , " vnd.ms-fontobject" ),
81- EPUB (APPLICATION_TYPE , " epub+zip" ),
82- FORM_DATA (APPLICATION_TYPE , " x-www-form-urlencoded" ),
83- KEY_ARCHIVE (APPLICATION_TYPE , " pkcs12" ),
84- APPLICATION_BINARY (APPLICATION_TYPE , " binary" ),
85- GEO_JSON (APPLICATION_TYPE , " geo+json" ),
86- GZIP (APPLICATION_TYPE , " x-gzip" ),
87- HAL_JSON (APPLICATION_TYPE , " hal+json" ),
88- JAVASCRIPT (APPLICATION_TYPE , " javascript" ),
89- JOSE (APPLICATION_TYPE , " jose" ),
90- JOSE_JSON (APPLICATION_TYPE , " jose+json" ),
91- JSON (APPLICATION_TYPE , " json" ),
92- MANIFEST_JSON (APPLICATION_TYPE , " manifest+json" ),
93- KML (APPLICATION_TYPE , " vnd.google-earth.kml+xml" ),
94- KMZ (APPLICATION_TYPE , " vnd.google-earth.kmz" ),
95- MBOX (APPLICATION_TYPE , " mbox" ),
96- APPLE_MOBILE_CONFIG (APPLICATION_TYPE , " x-apple-aspen-config" ),
97- MICROSOFT_EXCEL (APPLICATION_TYPE , " vnd.ms-excel" ),
98- MICROSOFT_OUTLOOK (APPLICATION_TYPE , " vnd.ms-outlook" ),
99- MICROSOFT_POWERPOINT (APPLICATION_TYPE , " vnd.ms-powerpoint" ),
100- MICROSOFT_WORD (APPLICATION_TYPE , " msword" ),
101- MEDIA_PRESENTATION_DESCRIPTION (APPLICATION_TYPE , " dash+xml" ),
102- WASM_APPLICATION (APPLICATION_TYPE , " wasm" ),
103- NACL_APPLICATION (APPLICATION_TYPE , " x-nacl" ),
104- NACL_PORTABLE_APPLICATION (APPLICATION_TYPE , " x-pnacl" ),
105- OCTET_STREAM (APPLICATION_TYPE , " octet-stream" ),
106- OGG_CONTAINER (APPLICATION_TYPE , " ogg" ),
107- OOXML_DOCUMENT (APPLICATION_TYPE , " vnd.openxmlformats-officedocument.wordprocessingml.document" ),
108- OOXML_PRESENTATION (APPLICATION_TYPE , " vnd.openxmlformats-officedocument.presentationml.presentation" ),
109- OOXML_SHEET (APPLICATION_TYPE , " vnd.openxmlformats-officedocument.spreadsheetml.sheet" ),
110- OPENDOCUMENT_GRAPHICS (APPLICATION_TYPE , " vnd.oasis.opendocument.graphics" ),
111- OPENDOCUMENT_PRESENTATION (APPLICATION_TYPE , " vnd.oasis.opendocument.presentation" ),
112- OPENDOCUMENT_SPREADSHEET (APPLICATION_TYPE , " vnd.oasis.opendocument.spreadsheet" ),
113- OPENDOCUMENT_TEXT (APPLICATION_TYPE , " vnd.oasis.opendocument.text" ),
114- OPENSEARCH_DESCRIPTION (APPLICATION_TYPE , " opensearchdescription+xml" ),
115- PDF (APPLICATION_TYPE , " pdf" ),
116- POSTSCRIPT (APPLICATION_TYPE , " postscript" ),
117- PROTOBUF (APPLICATION_TYPE , " protobuf" ),
118- RDF_XML (APPLICATION_TYPE , " rdf+xml" ),
119- RTF (APPLICATION_TYPE , " rtf" ),
120- SFNT (APPLICATION_TYPE , " font-sfnt" ),
121- SHOCKWAVE_FLASH (APPLICATION_TYPE , " x-shockwave-flash" ),
122- SKETCHUP (APPLICATION_TYPE , " vnd.sketchup.skp" ),
123- SOAP_XML (APPLICATION_TYPE , " soap+xml" ),
124- TAR (APPLICATION_TYPE , " x-tar" ),
125- WOFF (APPLICATION_TYPE , " font-woff" ),
126- WOFF2 (APPLICATION_TYPE , " font-woff2" ),
127- XHTML (APPLICATION_TYPE , " xhtml+xml" ),
128- XRD (APPLICATION_TYPE , " xrd+xml" ),
129- ZIP (APPLICATION_TYPE , " zip" )
86+ APPLICATION_XML (APPLICATION_TYPE , " xml" , APPLICATION ),
87+ ATOM (APPLICATION_TYPE , " atom+xml" , APPLICATION ),
88+ BZIP2 (APPLICATION_TYPE , " x-bzip2" , APPLICATION ),
89+ DART (APPLICATION_TYPE , " dart" , APPLICATION ),
90+ APPLE_PASSBOOK (APPLICATION_TYPE , " vnd.apple.pkpass" , APPLICATION ),
91+ EOT (APPLICATION_TYPE , " vnd.ms-fontobject" , APPLICATION ),
92+ EPUB (APPLICATION_TYPE , " epub+zip" , APPLICATION ),
93+ FORM_DATA (APPLICATION_TYPE , " x-www-form-urlencoded" , APPLICATION ),
94+ KEY_ARCHIVE (APPLICATION_TYPE , " pkcs12" , APPLICATION ),
95+ APPLICATION_BINARY (APPLICATION_TYPE , " binary" , APPLICATION ),
96+ GEO_JSON (APPLICATION_TYPE , " geo+json" , APPLICATION ),
97+ GZIP (APPLICATION_TYPE , " x-gzip" , APPLICATION ),
98+ HAL_JSON (APPLICATION_TYPE , " hal+json" , APPLICATION ),
99+ JAVASCRIPT (APPLICATION_TYPE , " javascript" , APPLICATION ),
100+ JOSE (APPLICATION_TYPE , " jose" , APPLICATION ),
101+ JOSE_JSON (APPLICATION_TYPE , " jose+json" , APPLICATION ),
102+ JSON (APPLICATION_TYPE , " json" , APPLICATION ),
103+ MANIFEST_JSON (APPLICATION_TYPE , " manifest+json" , APPLICATION ),
104+ KML (APPLICATION_TYPE , " vnd.google-earth.kml+xml" , APPLICATION ),
105+ KMZ (APPLICATION_TYPE , " vnd.google-earth.kmz" , APPLICATION ),
106+ MBOX (APPLICATION_TYPE , " mbox" , APPLICATION ),
107+ APPLE_MOBILE_CONFIG (APPLICATION_TYPE , " x-apple-aspen-config" , APPLICATION ),
108+ MICROSOFT_EXCEL (APPLICATION_TYPE , " vnd.ms-excel" , APPLICATION ),
109+ MICROSOFT_OUTLOOK (APPLICATION_TYPE , " vnd.ms-outlook" , APPLICATION ),
110+ MICROSOFT_POWERPOINT (APPLICATION_TYPE , " vnd.ms-powerpoint" , APPLICATION ),
111+ MICROSOFT_WORD (APPLICATION_TYPE , " msword" , APPLICATION ),
112+ MEDIA_PRESENTATION_DESCRIPTION (APPLICATION_TYPE , " dash+xml" , APPLICATION ),
113+ WASM_APPLICATION (APPLICATION_TYPE , " wasm" , APPLICATION ),
114+ NACL_APPLICATION (APPLICATION_TYPE , " x-nacl" , APPLICATION ),
115+ NACL_PORTABLE_APPLICATION (APPLICATION_TYPE , " x-pnacl" , APPLICATION ),
116+ OCTET_STREAM (APPLICATION_TYPE , " octet-stream" , APPLICATION ),
117+ OGG_CONTAINER (APPLICATION_TYPE , " ogg" , APPLICATION ),
118+ OOXML_DOCUMENT (APPLICATION_TYPE , " vnd.openxmlformats-officedocument.wordprocessingml.document" , APPLICATION ),
119+ OOXML_PRESENTATION (APPLICATION_TYPE , " vnd.openxmlformats-officedocument.presentationml.presentation" , APPLICATION ),
120+ OOXML_SHEET (APPLICATION_TYPE , " vnd.openxmlformats-officedocument.spreadsheetml.sheet" , APPLICATION ),
121+ OPENDOCUMENT_GRAPHICS (APPLICATION_TYPE , " vnd.oasis.opendocument.graphics" , APPLICATION ),
122+ OPENDOCUMENT_PRESENTATION (APPLICATION_TYPE , " vnd.oasis.opendocument.presentation" , APPLICATION ),
123+ OPENDOCUMENT_SPREADSHEET (APPLICATION_TYPE , " vnd.oasis.opendocument.spreadsheet" , APPLICATION ),
124+ OPENDOCUMENT_TEXT (APPLICATION_TYPE , " vnd.oasis.opendocument.text" , APPLICATION ),
125+ OPENSEARCH_DESCRIPTION (APPLICATION_TYPE , " opensearchdescription+xml" , APPLICATION ),
126+ PDF (APPLICATION_TYPE , " pdf" , APPLICATION ),
127+ POSTSCRIPT (APPLICATION_TYPE , " postscript" , APPLICATION ),
128+ PROTOBUF (APPLICATION_TYPE , " protobuf" , APPLICATION ),
129+ RDF_XML (APPLICATION_TYPE , " rdf+xml" , APPLICATION ),
130+ RTF (APPLICATION_TYPE , " rtf" , APPLICATION ),
131+ SFNT (APPLICATION_TYPE , " font-sfnt" , APPLICATION ),
132+ SHOCKWAVE_FLASH (APPLICATION_TYPE , " x-shockwave-flash" , APPLICATION ),
133+ SKETCHUP (APPLICATION_TYPE , " vnd.sketchup.skp" , APPLICATION ),
134+ SOAP_XML (APPLICATION_TYPE , " soap+xml" , APPLICATION ),
135+ TAR (APPLICATION_TYPE , " x-tar" , APPLICATION ),
136+ WOFF (APPLICATION_TYPE , " font-woff" , APPLICATION ),
137+ WOFF2 (APPLICATION_TYPE , " font-woff2" , APPLICATION ),
138+ XHTML (APPLICATION_TYPE , " xhtml+xml" , APPLICATION ),
139+ XRD (APPLICATION_TYPE , " xrd+xml" , APPLICATION ),
140+ ZIP (APPLICATION_TYPE , " zip" , APPLICATION )
130141}
131142
132143private val nameToMediaTypeMap: Map <String , MediaType > by lazy {
0 commit comments