19 package org.sleuthkit.autopsy.datamodel;
21 import org.openide.nodes.AbstractNode;
22 import org.openide.nodes.Children.Keys;
23 import org.openide.nodes.Node;
24 import org.openide.util.NbBundle;
47 abstract class AbstractContentChildren<T>
extends Keys<T> {
49 private final CreateSleuthkitNodeVisitor createSleuthkitNodeVisitor =
new CreateSleuthkitNodeVisitor();
50 private final CreateAutopsyNodeVisitor createAutopsyNodeVisitor =
new CreateAutopsyNodeVisitor();
55 AbstractContentChildren() {
64 protected Node[] createNodes(T key) {
65 if (key instanceof SleuthkitVisitableItem) {
66 return new Node[]{((SleuthkitVisitableItem) key).accept(createSleuthkitNodeVisitor)};
68 return new Node[]{((AutopsyVisitableItem) key).accept(createAutopsyNodeVisitor)};
134 throw new UnsupportedOperationException(NbBundle.getMessage(
this.getClass(),
135 "AbstractContentChildren.CreateTSKNodeVisitor.exception.noNodeMsg"));
146 static class CreateAutopsyNodeVisitor
extends AutopsyItemVisitor.Default<AbstractNode> {
154 public AbstractNode visit(FileTypesByExtension sf) {
155 return sf.new FileTypesByExtNode(sf.getSleuthkitCase(), null);
159 public AbstractNode visit(RecentFiles rf) {
160 return new RecentFilesNode(rf.getSleuthkitCase());
164 public AbstractNode visit(DeletedContent dc) {
165 return new DeletedContent.DeletedContentsNode(dc.getSleuthkitCase(), dc.filteringDataSourceObjId());
169 public AbstractNode visit(FileSize dc) {
170 return new FileSize.FileSizeRootNode(dc.getSleuthkitCase(), dc.filteringDataSourceObjId());
174 public AbstractNode
visit(KeywordHits kh) {
175 return kh.new RootNode();
179 public AbstractNode
visit(HashsetHits hh) {
180 return hh.new RootNode();
184 public AbstractNode
visit(InterestingHits ih) {
185 return ih.new RootNode();
189 public AbstractNode
visit(EmailExtracted ee) {
190 return ee.new RootNode();
194 public AbstractNode
visit(Tags tagsNodeKey) {
195 return tagsNodeKey.new RootNode(tagsNodeKey.filteringDataSourceObjId());
199 public AbstractNode
visit(DataSources i) {
200 return new DataSourcesNode(i.filteringDataSourceObjId());
204 public AbstractNode
visit(DataSourceGrouping datasourceGrouping) {
205 return new DataSourceGroupingNode(datasourceGrouping.getDataSource());
209 public AbstractNode
visit(Views v) {
210 return new ViewsNode(v.getSleuthkitCase(), v.filteringDataSourceObjId());
214 public AbstractNode
visit(Results results) {
215 return new ResultsNode(results.getSleuthkitCase(), results.filteringDataSourceObjId() );
219 public AbstractNode
visit(FileTypes ft) {
220 return ft.new FileTypesNode();
224 public AbstractNode
visit(Reports reportsItem) {
225 return new Reports.ReportsListNode();
229 public AbstractNode
visit(Accounts accountsItem) {
230 return accountsItem.new AccountsRootNode();
234 protected AbstractNode defaultVisit(AutopsyVisitableItem di) {
235 throw new UnsupportedOperationException(
236 NbBundle.getMessage(
this.getClass(),
237 "AbstractContentChildren.createAutopsyNodeVisitor.exception.noNodeMsg"));
241 public AbstractNode
visit(FileTypesByMimeType ftByMimeTypeItem) {
242 return ftByMimeTypeItem.new ByMimeTypeNode();
AbstractContentNode<?extends Content > visit(VirtualDirectory ld)
AbstractContentNode<?extends Content > visit(LocalFile lf)
T visit(FileTypesByExtension.RootFilter fsf)
AbstractContentNode<?extends Content > visit(Volume volume)
AbstractContentNode<?extends Content > visit(LayoutFile lf)
AbstractContentNode<?extends Content > defaultVisit(SleuthkitVisitableItem di)
AbstractContentNode<?extends Content > visit(Image image)
AbstractContentNode<?extends Content > visit(Directory drctr)
AbstractContentNode<?extends Content > visit(LocalDirectory ld)
AbstractContentNode<?extends Content > visit(File file)
AbstractContentNode<?extends Content > visit(DerivedFile df)
AbstractContentNode<?extends Content > visit(SlackFile sf)
AbstractContentNode<?extends Content > visit(BlackboardArtifact art)