19 package org.sleuthkit.autopsy.coreutils;
21 import com.google.common.collect.ImmutableSet;
22 import java.util.Arrays;
23 import static java.util.Arrays.asList;
24 import java.util.Collection;
25 import java.util.Collections;
26 import javax.imageio.ImageIO;
27 import static org.apache.commons.collections4.ListUtils.removeAll;
28 import org.apache.commons.lang.StringUtils;
29 import org.openide.util.NbBundle;
37 =
new ImmutableSet.Builder<String>()
43 Arrays.stream(ImageIO.getReaderMIMETypes())
44 .filter((mimeType) -> StringUtils.isNotBlank(mimeType))
45 .toArray(String[]::
new)),
46 asList(
"application/octet-stream")))
52 "image/vnd.adobe.photoshop",
57 "image/vnd.microsoft.icon",
61 "image/x-portable-graymap",
62 "image/x-portable-bitmap"
65 =
new ImmutableSet.Builder<String>()
75 =
new ImmutableSet.Builder<String>()
89 =
new ImmutableSet.Builder<String>()
99 "application/javascript",
101 "application/xhtml+xml",
102 "application/x-msoffice",
103 "application/x-ooxml",
104 "application/msword",
105 "application/msword2",
106 "application/vnd.wordperfect",
107 "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
108 "application/vnd.ms-powerpoint",
109 "application/vnd.openxmlformats-officedocument.presentationml.presentation",
110 "application/vnd.ms-excel",
111 "application/vnd.ms-excel.sheet.4",
112 "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
113 "application/vnd.oasis.opendocument.presentation",
114 "application/vnd.oasis.opendocument.spreadsheet",
115 "application/vnd.oasis.opendocument.text"
118 =
new ImmutableSet.Builder<String>()
119 .add(
"application/x-bat",
120 "application/x-dosexec",
121 "application/vnd.microsoft.portable-executable",
122 "application/x-msdownload",
125 "application/dos-exe",
127 "application/x-winexe",
128 "application/msdos-windows",
129 "application/x-msdos-program"
132 =
new ImmutableSet.Builder<String>()
138 =
new ImmutableSet.Builder<String>()
141 .add(
"application/vnd.ms-asf",
142 "application/vnd.rn-realmedia",
143 "application/x-shockwave-flash"
154 "FileTypeCategory.Audio.displayName=Audio",
155 "FileTypeCategory.Video.displayName=Video",
156 "FileTypeCategory.Image.displayName=Image",
157 "FileTypeCategory.Media.displayName=Media",
158 "FileTypeCategory.Visual.displayName=Visual",
159 "FileTypeCategory.Documents.displayName=Documents",
160 "FileTypeCategory.Executables.displayName=Executables"})
163 IMAGE(Bundle.FileTypeCategory_Image_displayName(),
165 Collections.emptyList()),
166 VIDEO(Bundle.FileTypeCategory_Video_displayName(),
168 Collections.emptyList()),
169 AUDIO(Bundle.FileTypeCategory_Audio_displayName(),
171 Collections.emptyList()),
175 VISUAL(Bundle.FileTypeCategory_Visual_displayName(),
177 Collections.emptyList()),
181 MEDIA(Bundle.FileTypeCategory_Media_displayName(),
183 Collections.emptyList()),
184 EXECUTABLE(Bundle.FileTypeCategory_Executables_displayName(),
186 Collections.emptyList()),
190 DOCUMENTS(Bundle.FileTypeCategory_Documents_displayName(),
192 Collections.emptyList());
198 private FileTypeCategory(String displayName, Collection<String> mediaTypes, Collection<String> extensions) {
199 this.displayName = displayName;
200 this.mediaTypes = ImmutableSet.copyOf(mediaTypes);
201 this.extensions = ImmutableSet.copyOf(extensions);
214 throw new UnsupportedOperationException(
"This method is not implemented yet.");
ImmutableSet< String > getExtensions()
static final ImmutableSet< String > VIDEO_MIME_TYPES
final ImmutableSet< String > extensions
ImmutableSet< String > getMediaTypes()
FileTypeCategory(String displayName, Collection< String > mediaTypes, Collection< String > extensions)
static final ImmutableSet< String > IMAGE_MIME_TYPES
static final ImmutableSet< String > DOCUMENT_MIME_TYPES
static final ImmutableSet< String > AUDIO_MIME_TYPES
final ImmutableSet< String > mediaTypes
static final ImmutableSet< String > VISUAL_MEDIA_MIME_TYPES
static final ImmutableSet< String > EXECUTABLE_MIME_TYPES
static final ImmutableSet< String > MULTI_MEDIA_MIME_TYPES