diff --git a/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java b/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java index f1e5641d92f066d196b7b9ac65f65f88ef46f83b..fcec827f006e7ea5c9d89f9f554bb8876cf64185 100755 --- a/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java +++ b/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java @@ -31,7 +31,7 @@ public abstract class AbstractContent implements Content { public final static long UNKNOWN_ID = -1; - private SleuthkitCase db; + private final SleuthkitCase db; private long objId; private String name; private Content parent; diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java index 88678e7357ff847366e0b2cc75a71546954f9aea..0bbec519a298b55658f586e1de8c7f72b9f702f7 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java +++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java @@ -2618,6 +2618,29 @@ private long getFileSystemByFileId(long fileId) { } return ret; } + + /** + * Gets the root-level data source object id + * (such as Image or VirtualDirectory representing filesets) for the file + * @param file file to get the root-level object id for + * @return the root content object id in the hierarchy, or -1 if not found (such as when invalid file object passed in) + * @throws TskCoreException thrown if check failed due to a critical tsk error + */ + public long getFileDataSource(AbstractFile file) throws TskCoreException { + + final Image image = file.getImage(); + if (image != null) { + //case for image data source + return image.getId(); + } + else { + //otherwise, get the root non-image data source id + //note, we are currently using fs_id internally to store data source id for such files + + return getFileSystemByFileId(file.getId()); + } + + } /** * Checks if the file is a (sub)child of the data source (parentless Content object diff --git a/framework/tsk/framework/services/TskImDBPostgreSQL.cpp b/framework/tsk/framework/services/TskImgDBPostgreSQL.cpp similarity index 100% rename from framework/tsk/framework/services/TskImDBPostgreSQL.cpp rename to framework/tsk/framework/services/TskImgDBPostgreSQL.cpp diff --git a/framework/tsk/framework/services/TskImDBPostgreSQL.h b/framework/tsk/framework/services/TskImgDBPostgreSQL.h similarity index 100% rename from framework/tsk/framework/services/TskImDBPostgreSQL.h rename to framework/tsk/framework/services/TskImgDBPostgreSQL.h