From 2343d091c81b39c90dfebae2fb1b493eba15c076 Mon Sep 17 00:00:00 2001 From: Tim McIver Date: Tue, 8 Jan 2013 16:15:17 -0500 Subject: [PATCH] Clean up org.sleuthkit.autopsy.directorytree.ViewContextAction.ReverseHierarchyVisitor code. --- .../directorytree/ViewContextAction.java | 90 ++++--------------- 1 file changed, 17 insertions(+), 73 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ViewContextAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ViewContextAction.java index fb9015e70e..7683dce2b7 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/ViewContextAction.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/ViewContextAction.java @@ -149,102 +149,46 @@ class ViewContextAction extends AbstractAction { /** * The ReverseHierarchyVisitor class is designed to return a list of Content - * objects starting with the one the user call 'accept' with and ending at + * objects starting with the one the user calls 'accept' with and ending at * the Image object. Please NOTE that Content objects in this hierarchy of * type VolumeSystem and FileSystem are skipped. This seems to be necessary * because org.sleuthkit.autopsy.datamodel.AbstractContentChildren.CreateSleuthkitNodeVisitor * does not support these types. */ - private class ReverseHierarchyVisitor implements ContentVisitor> { - + private class ReverseHierarchyVisitor extends ContentVisitor.Default> { + List ret = new ArrayList(); - - @Override - public List visit(Directory drctr) { - ret.add(drctr); + + private List visitParentButDontAddMe(Content content) { Content parent = null; try { - parent = drctr.getParent(); + parent = content.getParent(); } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Couldn't get parent of Directory: " + drctr, ex); + logger.log(Level.WARNING, "Couldn't get parent of Content object: " + content); } - return parent.accept(this); + return parent == null ? ret : parent.accept(this); } @Override - public List visit(File file) { - ret.add(file); + protected List defaultVisit(Content content) { + ret.add(content); Content parent = null; try { - parent = file.getParent(); + parent = content.getParent(); } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Couldn't get parent of File: " + file, ex); + logger.log(Level.WARNING, "Couldn't get parent of Content object: " + content); } - return parent.accept(this); + return parent == null ? ret : parent.accept(this); } - + @Override public List visit(FileSystem fs) { - Content parent = null; - try { - parent = fs.getParent(); - } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Couldn't get parent of FileSystem: " + fs, ex); - } - return parent.accept(this); + return visitParentButDontAddMe(fs); } - - @Override - public List visit(Image image) { - ret.add(image); - return ret; - } - - @Override - public List visit(Volume volume) { - ret.add(volume); - Content parent = null; - try { - parent = volume.getParent(); - } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Couldn't get parent of Volume: " + volume, ex); - } - return parent.accept(this); - } - + @Override public List visit(VolumeSystem vs) { - Content parent = null; - try { - parent = vs.getParent(); - } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Couldn't get parent of VolumeSystem: " + vs, ex); - } - return parent.accept(this); - } - - @Override - public List visit(LayoutFile lc) { - ret.add(lc); - Content parent = null; - try { - parent = lc.getParent(); - } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Couldn't get parent of LayoutFile: " + lc, ex); - } - return parent.accept(this); - } - - @Override - public List visit(VirtualDirectory vd) { - ret.add(vd); - Content parent = null; - try { - parent = vd.getParent(); - } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Couldn't get parent of VirtualDirectory: " + vd, ex); - } - return parent.accept(this); + return visitParentButDontAddMe(vs); } } }