19 package org.sleuthkit.autopsy.modules.fileextmismatch;
21 import java.util.ArrayList;
22 import java.util.Arrays;
23 import java.util.Collection;
24 import java.util.HashMap;
25 import java.util.List;
26 import java.util.logging.Level;
27 import javax.swing.Action;
28 import org.openide.util.Lookup;
29 import org.openide.util.NbBundle;
30 import org.openide.util.Utilities;
31 import org.openide.util.lookup.ServiceProvider;
44 @ServiceProvider(service = ContextMenuActionsProvider.class)
49 ArrayList<Action> actions =
new ArrayList<>();
54 final Collection<? extends BlackboardArtifact> selectedArts = Utilities.actionsGlobalContext().lookupAll(BlackboardArtifact.class);
57 if (selectedArts.size() == 1) {
59 for (BlackboardArtifact nodeArt : selectedArts) {
62 if (nodeArt.getArtifactTypeName().equals(
"TSK_EXT_MISMATCH_DETECTED")) {
63 String mimeTypeStr =
"";
66 AbstractFile af = null;
68 af = nodeArt.getSleuthkitCase().getAbstractFileById(nodeArt.getObjectID());
69 }
catch (TskCoreException ex) {
74 int i = af.getName().lastIndexOf(
".");
75 if ((i > -1) && ((i + 1) < af.getName().length())) {
76 extStr = af.getName().substring(i + 1).toLowerCase();
78 mimeTypeStr = af.getMIMEType();
79 if(mimeTypeStr == null) {
83 if (!extStr.isEmpty() && !mimeTypeStr.isEmpty()) {
85 if (extStr.length() > 10) {
86 extStr = extStr.substring(0, 9);
88 if (mimeTypeStr.length() > 40) {
89 mimeTypeStr = mimeTypeStr.substring(0, 39);
91 String menuItemStr = NbBundle.getMessage(this.getClass(),
92 "FileExtMismatchContextMenuActionsProvider.menuItemStr",
94 actions.add(
new AddFileExtensionAction(menuItemStr, extStr, mimeTypeStr));
97 HashMap<String, String[]> editableMap = FileExtMismatchXML.getDefault().load();
98 ArrayList<String> editedExtensions =
new ArrayList<>(Arrays.asList(editableMap.get(mimeTypeStr)));
99 if (editedExtensions.contains(extStr)) {
101 actions.get(0).setEnabled(
false);
static synchronized IngestManager getInstance()
boolean isIngestRunning()
synchronized static Logger getLogger(String name)